ホームページ >データベース >mysql チュートリアル >PDO MySQL 接続の文字エンコーディングを適切に設定するにはどうすればよいですか?

PDO MySQL 接続の文字エンコーディングを適切に設定するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-04 08:23:35871ブラウズ

How to Properly Set Character Encoding for PDO MySQL Connections?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。