发现不了一个错误,请帮忙看一下

发布于 2021-11-26 19:26:21 字数 1173 浏览 870 评论 6

/**
* 根据字段的键值对数组,形成插入语句,并执行
*
* @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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

奈何桥上唱咆哮 2021-11-30 03:40:48

打印出你要执行的SQL就可以了  或者使用数据库的跟踪执行语句 

醉生梦死 2021-11-29 22:34:40

// 此处是97行 $fields = array_map(function($v){return "`$v`";}, $fields);

怎言笑 2021-11-29 14:27:57

回复
你的php版本不会是小于5.3吧,不支持闭包

酷到爆炸 2021-11-29 07:47:00

回复
已发现问题。 php 2.2.6 版本太低。 不支持匿名函数

无声静候 2021-11-28 10:36:17

回复
错了 php 5.2.6

落墨 2021-11-26 22:24:56

语法错,看Model.class.php的第97行是什么

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文