gpt4 book ai didi

php - 为什么 MySQLi 准备了语句?

转载 作者:行者123 更新时间:2023-12-03 02:16:50 25 4
gpt4 key购买 nike

在 MySQLi 中使用准备好的语句有哪些优点?

如果唯一的目的是保护查询,那么使用mysqli_real_escape_string之类的东西清理查询不是更好,而不是为每个查询编写这么多行代码(例如prepare,bind_param,执行、关闭等)?

最佳答案

准备语句不仅仅是为了代码安全。它帮助 SQL Server 解析您的语句并为您的查询生成执行计划。

如果您运行 SELECT 1000 次,那么 SQL Server 将必须解析、准备并生成如何获取数据 1000 次的计划。

如果您准备一条语句,然后使用不同的绑定(bind)值运行准备好的语句 1,000 次,则该语句仅解析一次,并且每次都使用相同的查询计划。

这不仅在您在脚本内运行 1,000 个查询时有帮助,而且在您只有 1 个语句并运行脚本 1,000 次时也有帮助。服务器可以记住服务器端的计划。下次您的脚本运行时,它将再次使用相同的计划。

当然,对于一两个查询来说,这似乎微不足道,但是当您开始执行大量查询或重复执行同一查询时,您将节省大量处理时间。

关于php - 为什么 MySQLi 准备了语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5200238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com