这里是我目前要做的事:如何在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