在PHP7.4.14更新之后,我有一些SQL错误

在PHP7.4.14更新之后,我有一些SQL错误,php,pdo,Php,Pdo,在6.1.2021从7.4.13更新到7.4.14之后,我发现了一些以前没有的错误。MySql是5.7.32。我有sqls到: $prep = $dbconn->prepare($sql); $prep->execute(); 1064您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 第1行的'-server=utf8mb4_unicode_ci'附近;查询:设置 排序规则服务器=utf8mb4\u unicode\u ci 1115未知字符集:“

在6.1.2021从7.4.13更新到7.4.14之后,我发现了一些以前没有的错误。MySql是5.7.32。我有sqls到:

$prep = $dbconn->prepare($sql);
$prep->execute();
1064您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 第1行的'-server=utf8mb4_unicode_ci'附近;查询:设置 排序规则服务器=utf8mb4\u unicode\u ci

1115未知字符集:“utf8mb4_unicode_ci”;查询:设置 字符集连接=utf8mb4\U unicode\U ci

1064您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 “近”会话sql\u模式= 第行“无反斜杠转义,无自动创建用户,无引擎替换” 1、 查询:会话sql\u模式= 没有反斜杠转义,没有自动创建用户,没有引擎替换

同一天在我的服务器上也更新了PHP7.3到7.3.26。在7.3上运行的相同脚本没有问题


在此更新之前一切正常。

您似乎有一个创建mysql连接的脚本 使用字符集。utf8mb4\u unicode\u ci

你的mysql不知道这个字符集

1115 Unknown character set: 'utf8mb4_unicode_ci'; Query:SET character_set_connection = utf8mb4_unicode_ci
解决方案:
编辑连接字符串。

我知道这意味着什么,但你如何解释在这次更新之前一切正常?在我的连接中,与字符集无关,因为我后来用SQL设置了它。这里有相当多的帖子,指出升级到php 7后行为发生了变化。突然出现错误字符或其他讨厌的东西。p请查看出现错误的文件。没有关于从7.4.13更新到7.4.14的帖子。您没有提到从哪个版本升级。但是请查看您的软件的连接字符串。我发现您不明白我在说什么。PHP代码是相同的,没有任何更改。在6.1.2021之前,PHP版本是7.4.13,所有内容都是相同的好的,在2021年6月1日将我的PHP自动更新到7.4.14后,设置字符集时出现PDO问题。请不要浪费您和我的时间,因为您确实不知道问题出在哪里。谢谢。我知道您需要帮助,但我在调查了很多小时的问题后才问您。是的,很奇怪。看起来像是PDO问题。我在sett时遇到过类似的问题使用
$pdo->setAttribute(pdo::ATTR_EMULATE_PREPARES,1);
。导致问题的不是属性的值,而是设置属性。如果您有设置属性,或者作为
setAttribute
行,或者作为连接参数的一部分,请删除它并获取MySql对查询的意见。我的设置是通过sqls进行的。