ホームページ >データベース >mysql チュートリアル >PDO MySQL 接続の文字エンコーディングを適切に設定するにはどうすればよいですか?
PDO 接続の文字エンコーディングの処理
PDO (PHP Data Objects) 拡張機能を使用して MySQL 接続を確立する場合、適切な文字エンコーディングが重要です。データの整合性と正しい動作を保証します。 PDO 接続の文字エンコーディングを設定する方法を見てみましょう。
前のコードで使用されている従来の mysql_* 拡張機能では、
mysql_set_charset("utf8",$link); mysql_query("SET NAMES 'UTF8'");
これらのコマンドは、接続の文字エンコーディングを設定します。ただし、PDO ではアプローチが異なります。
PDO 接続の文字エンコーディングを設定するには、接続文字列自体の中で指定できます。例:
$connect = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
この文字列は、接続文字列に charset オプションを追加し、目的のエンコーディング (この場合は「utf8mb4」) を指定します。このメソッドを使用すると、接続の確立時にエンコーディングが設定されます。
レガシー PHP バージョン
ただし、5.3.6 より前の PHP バージョンを使用している場合、文字セット接続文字列のオプションは無視されました。この場合、別の方法を使用する必要があります:
$dbh = new PDO("mysql:host=$host;dbname=$db", $user, $password); $dbh->exec("set names utf8mb4");
ここでは、エンコードを指定せずに接続が確立され、exec() メソッドを使用して SQL クエリを実行し、その後文字エンコードを設定します。接続が確立されました。
以上がPDO MySQL 接続の文字エンコーディングを適切に設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。