我正在进行的Laravel项目中出现了一个奇怪的错误。
SQL状态[HY 000]:一般错误:20018“=”附近的语法不正确。[20018](严重性15)[(null)](SQL:update [计划零件]设置[需要腐 eclipse 保护] = 0,[修改日期] = 2018年1月24日11:47:03,其中[计划零件标识] = 131996)
测试服务器运行的是PHP7.1.10,本地主机是WAMP,运行的是7.0.10。
我不明白为什么这会导致错误。语法看起来是正确的。我只是使用Laravel的雄辩模型保存到数据库中,我很确定这只是一个PHP PDO绑定参数语句。
奇怪的是,如果我调整一个不同于is_corrosion_protection_required
的属性,我可以在测试服务器上保存。该属性是数据库中的一个bit
属性。我尝试将其更改为使用true/false、1 '/'0、'1'/'0'和'yes'/'no',但它没有修复任何内容。
我在另一个位域上遇到了同样的问题,所以我认为这与此有关,但我不知道我需要做什么或从这里去哪里。
希望有人能提供一些线索,告诉我还可以尝试什么,或者我需要做什么才能让这个在localhost和测试服务器上都工作。
我不认为更新的7.1版本是一个主要问题,但我不太了解服务器管理。
3条答案
按热度按时间nwlqm0z11#
经过许多小时的研究,我能够得出结论,我们的问题不在于错误消息中概述的原始查询。
有一些触发器与有问题的表相关联,而这些触发器可能是问题的根本原因。我不能肯定是什么引发了错误,但我们的DBA检查了触发器,并禁用了它们,导致一切恢复正常。
感谢所有的评论和帮助,在审查我的想法。
pobjuy322#
这个问题发生在服务器端,而不是您的项目,您需要确保在服务器上完成并成功安装
sqlsrv
和pdo_sqlsrv
模块。当您运行这些命令
pecl install pdo_sqlsrv
和pecl install sqlsrv
时,请确保进程成功完成,并且您会在进程结束时看到以下消息:rxztt3cl3#
这个问题是由字符集引起的!