gpt4 book ai didi

php - mysqli 是否准备缓存结果?

转载 作者:行者123 更新时间:2023-11-30 00:23:50 25 4
gpt4 key购买 nike

我读到,如果您使用 mysqli 准备而不是 mysqli 查询,即使您运行脚本 1000 次,它也只会在数据库上运行一次。这是否意味着如果我运行像

这样的准备语句
select * from Table where user=?"
and then mysqli_stmt_bind_param($stmt, "s", "Harry");

并且用户“harry”在数据库中不存在,因此 num_rows 将返回 0。然后我立即使用 user="harry" 在数据库中插入一个新行并再次运行脚本,它会返回 num_rows=1 还是仍然返回 num_rows=0,因为结果已被缓存?

最佳答案

您看到新插入的行的事实取决于其他因素...事务和事务隔离。准备语句仅意味着服务器知道即将发生什么并计算出优化语句的计划。然后,您可以使用相同或不同的参数多次运行查询,服务器将不必再分析它......只需执行它即可。

所以...回答你的问题...第二次你应该得到 num_rows=1。但如果您不这样做,问题不在于您准备了带参数的查询...而是其他问题。

关于php - mysqli 是否准备缓存结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23034459/

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