SQLの窓 イラストAC フリー素材

2014年10月10日

すごく当たり前の事なんですが、UTF-8N で保存されたテキストファイルをメモ帳で変更して保存したら先頭に EF BB BF という爆弾が仕掛けられるのでダメですよ

PHP で以下のような SQL を保存するわけです。もちろん UTF-8N で。
select 
	社員マスタ.*,
	DATE_FORMAT(生年月日,'%Y/%m/%d') as 誕生日
 from 社員マスタ
 where
	社員コード = '{$_GET['syainCode']}'

それを、メモ帳で読むと普通に読めるので、知らない初心者はそのまま SQL を変更して保存する。しかし、実行時に SQL の先頭には余計なデータが付加されているので、SQL はエラーとなる。たいていは初心者なので原因が解らず、かなり脱出困難なループに入ってしまいます。

上級者でも、まさかメモ帳で書き換えたとは気がつかずに原因を特定するのにそれなりに時間がかかる場合があります。勘のいい、もしくは運のいい先輩プログラマなら、すぐ対応できるでしょうが・・・

文字通りの BOM(B)

実際は、バイトオーダーマーク (byte order mark) というものですが、こういうシチュエーションでは爆弾の一種ですね。




確認用簡易ダンプ

「送る」に入れる簡易ダンプ




【PHPの最新記事】
posted by at 2014-10-10 20:34 | PHP | このブログの読者になる | 更新情報をチェックする