【问题标题】:PDO parameterized vs non-parameterized query speedPDO 参数化与非参数化查询速度
【发布时间】:2014-06-04 17:49:28
【问题描述】:

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

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

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

【问题讨论】:

    标签: php pdo


    【解决方案1】:

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

    根据PDO::quote上的手册:

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

    【讨论】:

    • 来吧,你没看到那里写的完全是垃圾吗?
    • @YourCommonSense 你指的是手册还是我的回答:-)
    • 你的答案不多。但是这个“快得多”和“可以缓存”的东西……
    【解决方案2】:

    这里是基准测试:http://jnrbsn.com/2010/06/mysqli-vs-pdo-benchmarks

    就减速而言,准备好的报表接近误差范围,因此在大多数情况下可以认为是微不足道的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-20
      • 2018-06-20
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      相关资源
      最近更新 更多