我有一个具有字符集utf8mb4
和排序规则utf8mb4-bin
的数据库。我要插入的表和列也具有此类属性。我的PHP文件保存在UTF-8中(没有BOM)。我用于PDO连接的$dsn
变量如下所示:$dsn = 'mysql:host=127.0.0.1;dbname=vk_comments;port=3306;charset=utf8mb4;connect_timeout=15'
。顺便说一下,我使用的是PHP 7.2。
但是MySQL一直说它得到了Incorrect string value
。如您所见,我到处都设置了正确的字符集。还有什么问题?
输入前的示例值:
我从MySQL得到的确切错误:SQLSTATE[HY000]: General error: 1366 Incorrect string value: \u0027\\xF0\\x9F\\x98\\x8A\u0027 for column \u0027comment_text\u0027 at row 1
答案 0 :(得分:0)
在$this->dbh = new PDO($dsn, $user, $password);
我必须添加
$this->dbh->exec("set names utf8mb4");
只有这个有效。