勉強がてらひとりブックマークプログラムを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);
へぇー