【发布时间】:2010-12-07 02:42:28
【问题描述】:
更新: 我发现了问题,我将 sql 语句输出到文件而不是屏幕上,并注意到 sql 语句末尾有一个额外的隐藏字符。一旦我删除查询工作正常。从网上剪切和粘贴声明就是忽略了这一点。谢谢您的帮助。 固定。
我收到来自 mysql 的 1064 错误,查询如下:
update `table` set `id` = "152614",
`Field2` = "151",
`Field3` = "11",
`Field4` = "1587",
`Field5` = "Elevator",
`Field6` = "",
`Field7` = "",
`Field8` = "",
`Field9` = "",
`Field10` = "",
`Field11` = "",
`Field12` = "0",
`Field13` = "0",
`Field14` = "0",
`Field15` = "0",
`Field16` = "0",
`Field17` = "0",
`Field18` = "0",
`Field19` = "0",
`Field20` = "0",
`Field21` = "0",
`Field22` = "0",
`Field23` = "0",
`Field24` = "0",
`Field25` = "0",
`Field26` = "0",
`Field27` = "0",
`Field28` = "0",
`Field29` = "0",
`Field30` = "0",
`Field31` = "0",
`Field32` = "0",
`Field33` = "0",
`Field34` = "0",
`Field35` = "0",
`Field36` = "1065353216",
`Field37` = "0",
`Field38` = "0",
`Field39` = "0",
`Field40` = "0",
`Field41` = "0",
`Field42` = "0",
`Field43` = "0" where id ="152614"
MySQL 错误 1064:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 43 行的 '' 附近使用
第 43 行是最后一行。
如果我将它粘贴到 mysql CLI 中,它可以正常工作:
查询正常,1 行受影响(0.00 秒) 匹配行:1 更改:1 警告:0
此时我不知所措,有什么想法吗?谢谢。
MySQL 版本:5.1.52 PHP版本:5.3.3
它在我的脚本中相当深,但产生错误的部分是:
$result = mysql_query( $sql );
if (mysql_errno()) {
echo "MySQL error ".mysql_errno().": ".mysql_error()."\n<br>When executing <br>\n$sql\n<br>";
如果我输出 $sql,它与上面查询的粘贴相同(上面来自错误行)。
【问题讨论】:
-
你能粘贴你的php代码吗?
-
奇怪。您确定这是 $sql 的确切值吗?你是如何构建 $sql 查询的?
-
我尝试在 $result 行之前输出 $sql,并将其粘贴到 CLI 并收到相同的结果(查询 OK..)。我通过读取二进制文件来创建 $sql,然后: $sql .= '
'.$field['name'].'= "'.mysql_real_escape_string($data).'",'; -
尝试在查询中使用单引号。
-
我试着把所有的双引号都换成单引号,同样的错误。
标签: php mysql mysql-error-1064