mysql ON DUPLICATE KEY 无法识别

标签 mysql phpmyadmin wampserver on-duplicate-key

此语句随机停止工作。我相信这是因为我使用的是新版本的 WAMP 4.5.2。

INSERT INTO at_user_listing_settings (userID, rfID, userID_rfID, Watching) VALUES(177, 35888, '177_35888', '1') ON DUPLICATE KEY UPDATE Watching='1'

我收到这个错误:

Unrecognized keyword. (near "ON" at position 138)
Unrecognized keyword. (near "DUPLICATE" at position 141)
Unrecognized keyword. (near "KEY" at position 151)

我似乎找不到任何语法错误,ON DUPLICATE KEY 是否已更改或弃用?

最佳答案

终于搞明白了。

当您下载新版本的 WAMP 时,它默认将 mysql 设置为“严格”模式。我的由 hostgator 托管的真实服务器必须有更宽松的限制。当尝试在本地运行代码时,代码是正确的,但是在尝试更新或插入数据库(也是本地)时,sql 语句遇到了问题。

例如,严格模式要求具有 bool 值的列具有默认值。如果任何列没有默认值,则在尝试插入时会失败。最糟糕的是它不会返回 apache 或 php 错误,因此调试起来非常困难。它也不喜欢“ON DUPLICATE KEY”。

为了解决这个问题,我进入 WAMP > MySQL > my.ini > 并寻找 sql-mode="STRICT_ALL_TABLES"

然后我删除了 STRICT_ALL_TABLES,一切都开始正常工作了。

关于mysql ON DUPLICATE KEY 无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37118642/

相关文章:

mysql - 如何解构 COUNT()?

php - 如何将 DBF 文件引入 XAMPP 工作区

php - 如何在mysql的数据库中存储图像和文本

html - 其他网络上的人无法连接到我的 WAMP 服务器

php - WAMP 服务器 mySQL 数据类型? mySQL 数据库未在 PHP 中更新?

mysql - Eloquent 查询只会准备,不会执行

php - 这是防止 sql 注入(inject)的安全方法吗?

c# - 连接 MySQL DB 时出现 Entity Framework 错误

php - 突然出现 Apache 错误? fatal error : Uncaught Error

composer-php - 如何在WampServer中使用 Composer ?