本当にPHP>=バージョン3.6および<5.3.6を使用していますか?
5.3.6以降を使用していると仮定します...
文字セット
および
$pdo = new PDO("mysql:host=localhost;dbname=mydb;charset=utf8",
'my_user', 'my_pass');
そして、(明らかに十分ではありませんが)utf8
utf8mb4
に置き換える必要があります 必要に応じて。
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
それほど良くはありませんが、5.3.6より前の代替手段でした。
「危険」という言葉は、5.3.6より前でも強すぎると思います。
関連する手法:init_command = SET NAMES ...
を使用する my.cnf
で 悪い init_command
root
として接続する場合は実行されません 。
utf8mb4
推奨されるCHARACTER SET
utf8
から欠落していた絵文字といくつかの漢字が含まれているため、UTF-8の場合 。その文字セットは、MySQLバージョン5.5.3以降で使用できます。