文字セット適切な文字セットをサーバーレベルで設定しておくのが理想であり、MySQL のマニュアルの » Character Set Configuration にもそうするよう書かれています。 しかしそれ以外にも、各 MySQL API には実行時に文字セットを指定する方法が用意されています。 警告
文字セットと文字のエスケープ文字セットはきちんと理解して設定しておかないといけません。 すべての操作に影響が及び、セキュリティの問題を引き起こす可能性があるからです。 たとえば、文字列のエスケープ (mysqli なら mysqli_real_escape_string、 PDO_MySQL なら PDO::quote) は文字セットの設定に従った動きをします。 これらの関数は、クエリで設定した文字セットは使わないことを知っておくことが大切です。 たとえば次の例のような設定をしても、エスケープ機能は正しく動きません。 例1 文字セットを SQL で指定することによる問題
実行時に文字セットを変更する適切な方法を、各 API について示します。
例2 文字セットの設定: mysqli
例3 文字セットの設定: pdo_mysql
|