我有一个带有charset utf8mb4
和collation utf8mb4-bin
的数据库。我要插入的表和列也具有这样的属性。我的PHP文件保存在UTF-8中(无BOM)。我的$dsn
变量用于PDO连接,如下所示:$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\x8Au0027 for column u0027comment_textu0027 at row 1
$this->dbh = new PDO($dsn, $user, $password);
我不得不添加
$this->dbh->exec("set names utf8mb4");
只有这个工作。