使用MySQLi准备好的语句有什么好处?
如果唯一的目的是保护查询,那么使用类似的东西来清理查询是不是更好,mysqli_real_escape_string而不是为每个查询编写这么多行代码(比如prepare,bind_param,execute,close等)?
bot*_*403 12
准备语句不仅仅是为了代码安全性.它有助于SQL Server解析您的语句并为您的查询生成执行计划.
如果运行SELECT 1000次,则SQL Server必须解析,准备并生成有关如何获取数据1000次的计划.
如果您准备一个语句然后使用不同的绑定值运行预准备语句1,000次,那么该语句只会被解析一次,并且每次都使用相同的查询计划.
这不仅有助于在脚本内运行1,000个查询,而且如果您只有1个语句并运行脚本1,000次.服务器可以记住计划服务器端.下次运行脚本时,它将再次使用相同的计划.
当然,对于一个或两个查询看起来似乎微不足道,但是当您重复开始执行大量查询或相同查询时,您将节省大量处理时间.
有几个优点:
WHERE $x = 4话,如果$x为null,你会得到语法错误,但是WHERE ? = 4会有效.| 归档时间: |
|
| 查看次数: |
1696 次 |
| 最近记录: |