- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我刚刚从使用 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/
我已经遵循this tutorial来让Elasticsearch与Laravel 6一起工作。一切都很好,但是我需要对查询进行一些更改。我需要对此进行更改: private function sea
我放入另一个查询中的多重查询无法运行。内部查询中的存储过程未执行。多重查询单独运行良好,但在循环内却运行不佳。冷你请检查一下,为什么 InnerQuery 不在循环内执行? query("SELEC
谁能告诉我如何使用 mysqli->multi_query() 在单个连接上执行多个更新/插入查询?谢谢。 我确实遵循了 PHP 手册中的教程。但我有一些问题。 我的一批查询有 5 个用分号分隔的语句
我需要一些帮助来找出我在随附代码中的错误。当我使用 if ($conn->query($sql) === TRUE) { 方法运行两个查询中的任何一个时,每个查询都可以正常工作。但是当我尝试将它们与
这是一个例子。 $mysqli = new mysqli("localhost", "root", "123", "temp"); $mysqli->begin_transaction(); $sql
我正在使用 JSON 将数据发送到我的 PHP API。我想使用此 API 向我的 Android 用户发送推送通知。我正面临一个奇怪的问题。我从 JSON 发送 Mobile Number、Mobi
我正在尝试使用多查询在 for 循环中运行一系列插入语句。 for 循环正确执行,第一个插入工作正常,但其他插入语句都没有运行。没有打印任何错误消息,但是用于打印结果的代码也没有显示任何内容。这是我的
我正在设置几个 MySQLi multi_query 函数。我知道您不能将准备好的语句与 multi_query 一起使用,因此我想知道建议与 muti_query 一起使用哪些安全预防措施。 rea
我需要用大约 3000 个查询来查询 mysql 数据库,而不是将每个查询发送到数据库服务器,我创建了巨大的 INSERT INTO ON DUPLICATE KEY 语句查询并将其发送到数据库服务器
我必须插入 2 个查询,并且我想使用 multi_queries 运行它们。在文件的每次运行中,表中都应该添加 2 行,但我的问题是它们没有被插入。我与数据库的连接正常,我用它测试了查询 $q
我需要在 PHP 中运行数据库创建脚本。使用 multi_query 我发现触发器定界符有一些问题: $sql=" CREATE TABLE `test` ( `id` int(10) unsigne
我有一个字符串数组,它们是 sql“输入到...”查询。我循环遍历这个数组,将其中的每 50 个组合成一个新字符串,然后发送到 mysql 数据库。之后,我重置临时字符串并为新查询做好准备。 但是我的
我正在使用 Mysqli 和 multi_query 在数据库表中更新或插入多行。当我在我的本地 MAMP 服务器上使用它们时它们工作正常,但当我将它们放到网上时它们就崩溃了。在远程服务器上,只执行了
谁能解释一下 mysqli multi_query() 的用途是什么?我不明白一个简单的 MySQLi 查询是否支持多语句,或者我是否被迫使用 multi_query() 来执行这样的查询: S
我在向我的 MySQL 数据库发送 multi_query 时遇到了问题。我想获取一个文件的内容并通过多查询将其发送到数据库 我用这个方法创建了一个 MySQLi 类: public func
有人在回答中提出了 MySQLi multi_query 函数,声称它比循环执行 3 个单独的查询要好。我尝试用 Google 搜索一些答案,但没有真正满足我的好奇心,所以我希望你们能更好地了解使用它
这个问题在这里已经有了答案: "Commands out of sync; you can't run this command now" - Caused by mysqli::multi_que
function cpanel_populate_database($dbname) { // populate database $sql = file_get_contents
我有一个函数,旨在借助 sql 查询复制具有所有属性的产品。 我的问题是在完成后将 new_product_id 返回给 php。 如果我在 phpmyadmin 中运行 sql 脚本,一切正常。 如
docs for multi_query说: Returns FALSE if the first statement failed. To retrieve subsequent errors fr
我是一名优秀的程序员,十分优秀!