これが私が現在それを行う方法です:
$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")', $タイトル、 $コンテンツ);
それは私には素晴らしいように見えますが、今私の質問は、フォーマット文字列からすべての文字列変換仕様を正しく解析し、それぞれの引数で $db->esc() を呼び出す方法です (すべてを sprintf() に渡す前に) ?
別の方法でやりますか?