Takazudo Clipping*

  • 文字サイズ小
  • 文字サイズ中
  • 文字サイズ大

DBに登録する変数の値にシングルクオートが含まれているとコケる

勉強がてらひとりブックマークプログラムをPHPでシコシコ作成中・・・
sqliteを使っているんだけれども、シングルクオートが登録するデータの中に入ってるとエラーでた。

$db = sqlite_open("test.db");
$str = "test'String";
$query = 
"
    INSERT INTO hogehogeDB(testVar)
    VALUES('".$str."')
";
$result = sqlite_query($db,$query);

上みたいに直接つっこむとSQLインジェクションされちゃうので、sqlite_escape_string()で、シングルクオートをエスケープしてあげないとダメみたい。これだと、「'」を、「''」にエスケープしてくれる。

$db = sqlite_open("test.db");
$str = "test'String";
$str = sqlite_escape_string($str);
$query = 
"
    INSERT INTO hogehogeDB(testVar)
    VALUES('".$str."')
";
$result = sqlite_query($db,$query);

へぇー

  • コメントを書く
: 
: 
: 
TrackBack URL (この記事についてトラックバックしたい時は以下のURLを指定してください)
http://gyauza.egoism.jp/cgi/mt/mt-tb.cgi/1696



2007 © Takazduo Some Rights Reserved.