SQLSTATE [HY000]:常规错误:20018'='附近的语法不正确

时间:2018-01-24 16:59:42

标签: php sql-server laravel pdo eloquent

我正在处理的Laravel项目中遇到一个奇怪的错误。

  

SQLSTATE [HY000]:常规错误:20018'='附近的语法不正确。 [20018](严重性15)[(null)](SQL:update [plan_part] set [is_corrosion_protection_required] = 0,[modified_date] = 2018-01-24 11:47:03其中[plan_part_id] = 131996)

它发生在我的测试服务器上,但在本地它正在运行。测试服务器运行的是PHP 7.1.10,localhost是运行7.0.10的WAMP。

我不明白为什么会导致错误。语法似乎是正确的。我只是使用Laravel的雄辩模型来保存到数据库,我很确定它只是一个PHP PDO绑定参数语句。

奇怪的是,如果我调整is_corrosion_protection_required以外的其他属性,我可以保存在测试服务器上。该属性是DB中的bit属性。我尝试将其更改为使用true / false,1/0,'1'/'0'和'yes'/'no',但它没有修复任何内容。

我在另一个位字段遇到同样的问题,所以我认为它与此有关,但我不知道我需要做什么或从哪里去。

希望有人能提供一些线索,告诉我还有什么可以尝试的,或者我需要做些什么才能让它在localhost和测试服务器上运行。

我认为更新的7.1版本不是主要问题,但我对服务器管理知之甚少。

2 个答案:

答案 0 :(得分:0)

经过数小时的研究,我得出的结论是我们的问题与错误消息中列出的原始查询无关。

有关于该表的触发器,这些触发器可能是问题的根本原因。我无法确定究竟是什么引发了错误,但我们的DBA审核了触发器并禁用了它们,导致所有内容再次发挥作用。

感谢所有评论和协助,以回顾我的想法。

答案 1 :(得分:-1)

此问题是由charset引起的!

execute [ iconv(); ]
相关问题