发现不了一个错误,请帮忙看一下
/** * 根据字段的键值对数组,形成插入语句,并执行 * * @param $data array */ public function autoInsert($data) { //过滤下数组 $data = $this->filter($data); //拼凑insert语句 //拼凑表名 $sql = "insert into `{$this->table()}`"; //拼凑字段列表部分 //得到所有的下标,得到所有的键! $fields = array_keys($data);//array('goods_id', 'goods_name', '...'); //最好给所有的字段名,增加上反引号包裹! // 此处是97行 $fields = array_map(function($v){return "`$v`";}, $fields); $fields_str = implode(',', $fields);//goods_id, goods_name, goods_sn,.... $sql .= '(' . $fields_str . ')'; // $sql .= ' values '; //拼凑值列表部分 //需要将所有的值,增加上引号包裹,再使用逗号连接起来! $values = array_map(function($v){return "'$v'";}, $data);//对数组内的每个元素,都执行相应的函数, array("'iphone'", "'goods_12'", ....); //使用逗号连接 $values_str = implode(',', $values); $sql .= '(' . $values_str . ')'; echo $sql; //执行 return $this->db->query($sql); }
显示Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in D:AppServwwwshoplibsmodelsModel.class.php on line 97 错误
找了半天了没找出来
怎么调试出来?用什么工具?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
打印出你要执行的SQL就可以了 或者使用数据库的跟踪执行语句
// 此处是97行 $fields = array_map(function($v){return "`$v`";}, $fields);
回复
你的php版本不会是小于5.3吧,不支持闭包
回复
已发现问题。 php 2.2.6 版本太低。 不支持匿名函数
回复
错了 php 5.2.6
语法错,看Model.class.php的第97行是什么