sql prepare语句 PHP,php - prepare与sql的开销?

阿神2017-06-05 11:09:311楼

1.PDO::query执行一条SQL语句,如果通过,则返回一个PDOStatement对象。PDO::query函数有个“非常好处”,就是可以直接遍历这个返回的记录集。

2.PDO::exec执行一条SQL语句,并返回受影响的行数。此函数不会返回结果集合。官方建议:

对于在程序中只需要发出一次的 SELECT 语句,可以考虑使用 PDO::query()。

对于需要发出多次的语句,可用 PDO::prepare() 来准备一个 PDOStatement 对象并用 PDOStatement::execute() 发出语句。

PDO::exec支持SELECT/DELETE/UPDATE/INSERT等全部SQL语句执行,所以相比PDO query()函数功能要强大的多。由于只返回受影响的函数,所以,如果执行SELECT则无法得到PDOStatement对象,故也无法遍历结果集,只能按照官方建议去使用query或execute函数。。

3.prepare的原理是这样的,预先把sql语句发送给sql server进行编译,等exec的时候再真正的执行。一次编译,多次执行。如果只是一次查询的话,prepare和query效率基本相当。如果多次执行,prepare的效率就会提现出来。另外并不是所有sql注入都可以防止,where in(“ ”)这样的就不行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值