PDO参数化与非参数化查询速度

时间:2014-06-04 17:49:29

标签: php pdo

我从最近几个月使用PHP-PDO中了解到,您可以执行PREPARE语句然后运行查询。事实上,如果我要在复杂的连接上进行SELECT,改变where条件,重复次数,我就可以看到它的用处。

或者,类似地,如果我想要插入多个记录。

但是,如果我知道我只想运行一次声明,那么我不应该执行查询吗?我基本上两次查询数据库。

2 个答案:

答案 0 :(得分:2)

这取决于你是否有任何输入需要转义以防止sql注入。

根据PDO::quote上的手册:

  

如果您正在使用此函数来构建SQL语句,那么您就是   强烈建议使用PDO :: prepare()来准备SQL语句   使用绑定参数而不是使用PDO :: quote()进行插值   用户输入到SQL语句中。带有约束的预备语句   参数不仅更便携,更方便,不受SQL的影响   注入,但通常比插值快得多   查询,因为服务器端和客户端都可以缓存已编译的表单   查询。

答案 1 :(得分:2)

以下是基准:http://jnrbsn.com/2010/06/mysqli-vs-pdo-benchmarks

准备好的报表在减速方面接近于误差范围内,因此对于大多数用途而言可能被认为是微不足道的。