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