仕事でずいぶん前に作られたPHPをいじっていました。
DBの型も、PHPの入力チェックも通っているのに
なぜかSQLエラーが出ていたので調べてみました。
諸悪の根源はPHPファイルがSJISだったことであるようです。
エラーを出している部分は以下の部分でした。
$hoge = mysql_escape_string($hoge);
こうするとPHPファイル自体がSJISの場合、
$hogeに¥(円マーク)が入ってしまうケースがあり、
SQLエラーが起こっていました。
そこで以下に変更しました。
mysql_set_charset(’sjis’);
$hoge = mysql_real_escape_string($hoge);
mysql_real_escape_stringは
mysql_set_charsetの文字コードを見て$hogeを変換してくれるそうです。
ちゃんとした作りにしようと強く実感しました(苦笑)
- Newer: Call-time pass-by-reference has been deprecated
- Older: Options +Includes AddHandler server-parsed html
関連記事
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://cafe-system.com/system102.html/trackback
- Listed below are links to weblogs that reference
- mysql_escape_stringの罠 from カフェ関連サイトのシステム開発日記