這裏是我目前要做的事:如何在PHP SQL查詢中自動轉義字符串?
$db->query(sprintf('INSERT INTO pages (title, content) VALUES ("%s", "%s")', $db->esc($title), $db->esc($content)));
正如你可以看到我手動每個字符串傳遞給我的$ DB-> ESC()方法逃避在上面的查詢每個字符串。
首先讓我指出我不想使用預準備語句。
我可以想出最好的辦法是讓我的$ DB-> query()方法包裝的sprintf()並自動調用$ DB-> ESC()對每個字符串轉換規範 - 這樣的:
$db->query('INSERT INTO pages (title, content) VALUES ("%s", "%s")', $title, $content);
對我來說這看起來不錯,但現在我的問題是如何正確解析出格式字符串中的所有字符串轉換規範,並在每個相應參數上調用$ db-> esc()(在將所有參數傳遞給sprintf ())?
你會以不同的方式去做嗎?
你不能只是逃避**所有* *輸入參數?我認爲這不會破壞符合數據(如數字值等)。 – Lukas 2013-05-08 05:07:37
你不想使用預備聲明的任何原因? – Passerby 2013-05-08 05:12:17