gpt4 book ai didi

PHP/mysqli - 准备语句(在循环中)或 multi_query

转载 作者:可可西里 更新时间:2023-11-01 13:09:46 25 4
gpt4 key购买 nike

我刚刚从使用 mysql 转向使用 PHP 中的 mysqli 扩展。

我遇到过两种做同一件事的方法(多个更新查询),每种方法的优缺点是什么?我应该使用其中之一还是完全使用其他东西?

循环中的准备语句:

//prepare statement
foreach(whatever){
//execute statement
}

多查询:

foreach(whatever){
//build many queries into a single string
}
multi_query(long string)

我知道准备好的语句提供更好的安全性。在 PHP 中使用 mysql 时,我听说最好避免在循环中使用 UPDATE 语句 - 在循环中执行 mysqli 准备好的语句不是用另一个名称做同样的事情吗?

最佳答案

如果出于某种原因您不能仅使用一个 mysql 更新语句来更新所有目标记录来完全避免此 PHP 循环的需要,那么重用相同的 update mysqli 语句对象是完全没问题的在一个循环中。

在风格和资源方面,重用参数化语句比不断重新创建它更好。通过重用它,您在初始 bind_param 调用之后所做的就是在每次迭代中重新分配绑定(bind)的 PHP 变量的值,然后简单地重新执行(参见: mysqli_stmt->execute Example #1 Object oriented style ).

请记住,在您的 WHERE 子句中,您只有另一个 PHP 变量分配参数,如 WHERE (recordID = ?) 来迭代。

初始设置每个参数化语句需要额外的资源,因此应保留多个参数化语句以传递多个不相关语句或查询。此外,PHP 的多查询 函数和方法似乎根本不支持参数化。

关于PHP/mysqli - 准备语句(在循环中)或 multi_query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5073444/

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