ホームページ >データベース >mysql チュートリアル >PDO と MySQL: 接続文字列に文字セットを設定する必要がありますか、それとも「SET NAMES」を使用する必要がありますか?
PDO: 文字セットと名前を設定する必要がありますか?
以前は、mysql_* 関数を使用するときに、文字セットを設定し、SET NAMES クエリを実行して、適切な文字エンコーディングを確保します。同じ原則が PDO 接続にも適用されます。
PDO オプション
PDO 接続の場合、接続文字列の一部として文字セットを指定できます:
$connect = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
PHP 以前5.3.6
バージョン 5.3.6 より前の PHP を使用している場合、charset オプションは無視されます。この場合に文字セットを設定するには、PDO の exec() メソッドを使用する必要があります。
$dbh = new PDO("mysql:host=$host;dbname=$db", $user, $password); $dbh->exec("set names utf8mb4");
文字セットを設定すると、アプリケーションが正しい文字エンコーディングを使用してデータベースと通信し、データの破損やデータの破損が回避されます。表示の問題
以上がPDO と MySQL: 接続文字列に文字セットを設定する必要がありますか、それとも「SET NAMES」を使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。