📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

330行目: 330行目:
<u>データベースに接続できない場合等は、Warningが発生する。</u><br>
<u>データベースに接続できない場合等は、Warningが発生する。</u><br>
<u>もし、データベースを動的に指定する場合、<code>set_error_handler</code>関数を使用して<code>ErrorException</code>に変換した後、例外処理を行う。</u><br>
<u>もし、データベースを動的に指定する場合、<code>set_error_handler</code>関数を使用して<code>ErrorException</code>に変換した後、例外処理を行う。</u><br>
<br>
==== 文字コードの設定 ====
<u>PDOでMySQLに接続する場合は、文字コードの設定 (例: charset=utf8mb4) を指定することを強く推奨する。</u><br>
<br>
もし、明示的に指定しない場合、MySQLのデフォルト設定に依存することになり、環境によって動作が異なる可能性がある。<br>
そのため、確実な文字エンコーディングの制御のために、charsetを明示的に指定することを推奨する。<br>
<br>
* 絵文字や特殊文字のサポート
*: utf8mb4は絵文字やその他の4バイト文字を完全にサポートする。
*: 通常のutf8では絵文字などが正しく保存できない可能性がある。
*: <br>
* 文字化け防止
*: 日本語を含む多言語対応において、文字化けを防ぐことができる。
*: データベースとアプリケーション間で一貫した文字エンコーディングを保証する。
*: <br>
* 将来の互換性
*: 現代のWebアプリケーションでは、utf8mb4が事実上の標準となっている。
*: 後々データベースに絵文字等を格納する可能性を考慮すると、最初から設定しておくのが無難である。
<br>
<syntaxhighlight lang="php">
// 使用例
$db = new PDO('mysql:host=<IPアドレスまたはホスト名>;dbname=<データベース名>;charset=utf8mb4', '<ユーザ名>', '<パスワード>');
</syntaxhighlight>
<br><br>
<br><br>