« Mac で Wiiリモコン | メイン | script.aculo.us : Sortable.sequence() による POSTデータ作成 »

sqlite_escape_string のバグにはまる

あとで読む

php4 で SQLite2 を使う(参考: PHP4 で SQLite2 を使う (groundwalker.com))とき、SQLiteへ渡す文字列へは sqlite_escape_string をかける(参考:SQLite と magic_quotes_gpc (groundwalker.com))が、この sqlite_escape_string に思わぬバグがあってはまった。。。。

たとえば、

<?php
echo sqlite_escape_string('text')."\n";
echo sqlite_escape_string('')."\n";
?>

というコードの期待出力は

text

だが、実際には

text
text

と、空文字列を引数に与えてこの関数を呼んだとき、前回呼び出したときの文字列が出力されてしまう。おかげで、空白のフォームフィールドに、他のフィールドの値がコピーされてしまうような結果になってしまった。いやー、原因つきとめるのに時間食っちゃった。。。

ちなみにこのバグは既に報告されたものだった。
PHP Bugs: #36867: sqlite_escape_string on '' or null returns wrong value
だけど、

CVS上では修正されてるけど、修正されたあとリリースされてないからね。CVSからとってきてコンパイルしてね。
だって。。。。

Trackbacks

Trackback URL:
http://groundwalker.com/mt/gwtb.cgi/89

» php: リダイレクトしない罠 from groundwalker.com
昨日のはまり(sqlite_escape_string のバグにはまる (gr... [More...]

« Mac で Wiiリモコン | メイン | script.aculo.us : Sortable.sequence() による POSTデータ作成 »

スポンサー

関連ブログ

あわせて読みたい

関連キーワード

Powered by
Movable Type 3.34

連絡先