📢 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> | ||