SQLインジェクション対策で文字化け?

【この記事の所要時間 : 約 2 分

PHPで、SQLインジェクション対策に $mysqli->real_escape_string() を利用したら変な場所に(エンマーク)が付加されていた!
なんでかなあ〜と思って調べてみると、
$mysqli->real_escape_string() は、接続現在の文字セットを考慮してSQL文で使用する文字列の特殊文字をエスケープするみたい。
だから、デフォルトの文字セットは latan1 になっているのに、UTF-8の文字をエスケープしていたため変な場所に(エンマーク)が入っていた。
PHPマニュアル : mysqli_real_escape_string
ということで、対策としてPHPとMySQLとの間のデータ通信のデフォルト文字コードの設定を以下の関数を利用して UTF-8 に変更した。
$mysqli->set_charset(“utf8”);
PHPマニュアル : mysqli_set_charset
困っている人がいれば参考までに。
以下、参考までに。
セッションハイジャック と session_regenerate_id( )関数

~短期集中講座~ 土日でわかる PHPプログラミング教室 環境づくりからWebアプリが動くまでの2日間コース
フロイデ株式会社 吉谷 愛
SBクリエイティブ
売り上げランキング: 8,538
スポンサーリンク
レクタングル(大)広告
  • このエントリーをはてなブックマークに追加
スポンサーリンク
レクタングル(大)広告

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です