【发布时间】:2018-10-09 20:52:08
【问题描述】:
this question之后,我运行下面的脚本:
$newrecord='{"firsttime":"19.53","secondtime":null,"sX464time":"6.25","wX1X465time":"4.14"}';//JSON
$sql='UPDATE `'.$tablesnames[$i].'` SET `postrecords`='.$newrecord.' WHERE `id`='.$id;
//var_dump($sql) here
$update3=$pdo->exec($sql);
var_dump($sql) 得到结果:
string 'UPDATE `table651` SET `postrecords`={"firsttime":"19.53","secondtime":null,"sX464time":"6.25","wX1X465time":"4.14"} WHERE `id`=1'
但最终得到警告:
警告:PDO::exec(): SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 '"firsttime":"0","secondtime":null,"sX464time":null 附近使用正确的语法
有什么问题?
【问题讨论】:
-
在另一个问题中,您被告知不能对表名使用参数。为什么还要删除数据的参数?
-
在那个问题中,我知道
prepare中不能使用参数,那我直接使用exec。我的错误是什么? -
您应该只删除表名的参数,您可以保留它们用于其他所有内容。
-
您打印了 SQL,但没有看到明显的错误,即您的字符串周围没有引号?