我有3张桌子:
虽然我在更新vehicle_record
表时成功,但其他两个表无法更新。
运行查询时,会出现以下错误消息:
1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行'WHERE regno ='TAC 2123'附近使用正确的语法
答案 0 :(得分:0)
从错误消息中,我怀疑你的日期类型是一个字符串。您应该将所有值转义为将其放入查询中。
我建议你试试AdoDB library。该库是多数据库,可以帮助您轻松进行插入和更新。使用AdoDB进行更新的示例:
$regno = $adodb->qstr('TAC 2123');
$data = array(
'col1' => 'val1',
'col2' => 'val2',
'col3' => 'val3'
);
$result = $adodb->AutoExecute($tablename, $data, 'UPDATE', "regno=$regno");
通过在将值放入查询之前转义该值,可以防止SQL注入。使用AdoDB自动执行执行此操作,然后AdoDB会自动执行值的转义。
对于带字符串类型的键,必须手动执行。如果密钥是整数,则使用intval
优先于$adodb->qstr()
。
答案 1 :(得分:0)
为了让我们在这里为您提供帮助,您需要提供发送到服务器的SQL语句的全文。将其粘贴为问题的一部分。