这是我目前的做法:
$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() 之前)?
你会用不同的方式来做吗?