【问题标题】:MySQL Error in PHP but not through CLIPHP中的MySQL错误但不是通过CLI
【发布时间】: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


【解决方案1】:

我发现了问题,我将 sql 语句输出到文件而不是屏幕上,并注意到 sql 语句末尾有一个额外的隐藏字符。一旦我删除查询工作正常。从网上剪切和粘贴声明就是忽略了这一点。谢谢您的帮助。固定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2016-06-28
    • 2012-10-24
    • 1970-01-01
    • 2011-08-30
    相关资源
    最近更新 更多