ホームページ >データベース >mysql チュートリアル >PDO と MySQL: 接続文字列に文字セットを設定する必要がありますか、それとも「SET NAMES」を使用する必要がありますか?

PDO と MySQL: 接続文字列に文字セットを設定する必要がありますか、それとも「SET NAMES」を使用する必要がありますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-18 14:12:13945ブラウズ

PDO and MySQL: Should I Set the Charset in the Connection String or Use `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 サイトの他の関連記事を参照してください。

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