mysql 初始化PDO时-我应该执行以下操作:字符集=UTF8还是字符集= UTF8 MB 4?[重复]

6g8kf2rb  于 2023-03-11  发布在  Mysql
关注(0)|答案(1)|浏览(141)

此问题在此处已有答案

(13个答案)
23小时前关门了。
初始化PDO时-我应该执行以下操作:字符集=UTF8还是字符集= UTF8 MB 4?
以下是我姓名首字母缩写:

$dsn = 'mysql:host=example.com;dbname=testdb;port=3306;charset=UTF8';
$dbh = new \Pdo($dsn, 'username', 'pass');
$dbh->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);

但dsn应该是这样的:

$dsn = 'mysql:host=example.com;dbname=testdb;port=3306;charset=UTF8MB4';

如果mysql数据库具有默认字符集UTF8 MB 4。

r3i60tvu

r3i60tvu1#

对于PDO和数据库结构,应该使用utf8mb4

$dsn='mysql:host=example.com;dbname=testdb;port=3306;charset=utf8mb4';

如果可能的话,不要忘记设置页面的字符编码。PHP示例:

mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');

相关问题