PDO 接続設定: 文字セットの処理
PHP データ オブジェクト (PDO) を使用して接続を確立する場合、文字を考慮することが重要です特に非 ASCII 文字を扱う場合の set 処理。この点に関して、PHP PDO には文字セットを設定するオプションが用意されています。
接続文字列アプローチ
PHP 5.3.6 以降の PDO バージョンでは、接続文字列内で直接文字セットを設定します。たとえば、文字セットを 'utf8mb4' に設定するには:
$connect = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
古い PHP バージョンに対する DBH Exec アプローチ
ただし、古いバージョンを使用している場合PHP (5.3.6 以前) では、接続文字列の charset オプションは無視されます。このような場合は、次のアプローチを使用して文字セットを設定する必要があります:
$dbh = new PDO("mysql:host=$host;dbname=$db", $user, $password); $dbh->exec("set names utf8mb4");
レガシー MySQL_* アプローチ
指定したコード スニペット。これには次の使用が含まれます。 mysql_set_charset および mysql_query("SET NAMES 'UTF8'") は、従来の MySQL_* 関数に適用できます。これらは現在非推奨であり、推奨されていません。 PDO は、PHP で MySQL データベースに接続し、対話する場合に推奨されるアプローチです。
結論
これらのガイドラインに従うことで、PDO での文字セット処理を効果的に構成できます。接続して、非 ASCII 文字が PHP アプリケーションで正しく処理されるようにします。
以上がPDO データベース接続で文字セットを適切に構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。