0

我有 3 张桌子:

  1. 车辆记录
  2. 保险
  3. 路税

虽然我成功更新了vehicle_record表格,但其他两个表格无法更新。

当我运行查询时,出现以下错误消息:

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'WHERE regno='TAC 2123'' 附近使用正确的语法

4

2 回答 2

0

从错误消息中,我怀疑您有日期类型为字符串的密钥。在将其放入查询之前,您应该转义所有值。

我建议你试试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().

于 2010-02-18T04:15:15.523 回答
0

为了让我们在这里为您提供帮助,您需要提供发送到服务器的 SQL 语句的全文。将其粘贴为您问题的一部分。

于 2010-02-18T05:19:09.117 回答