- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Mysqli 和 multi_query 在数据库表中更新或插入多行。当我在我的本地 MAMP 服务器上使用它们时它们工作正常,但当我将它们放到网上时它们就崩溃了。在远程服务器上,只执行了四个查询中的三个...
这两个环境都有 PHP 和 mysql 版本 5+,并包含“PHP 扩展名:mysqli”。我看到的唯一区别是 phpMyAdmin 版本。远程服务器有 3.5.6,我的本地 MAMP 服务器有 4.2.5。这会产生影响吗?
我当然要更改密码,所有变量都应该有效,因为它们在本地工作。
我不知所措......谢谢!
$mysqli = new mysqli("localhost", "root", "root", "database");
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$sql = "INSERT INTO categories (id, name, descr) VALUES ('$id1', '$name1', '$descr1') ON DUPLICATE KEY UPDATE name='$name1', descr='$descr1';";
$sql.= "INSERT INTO categories (id, name, descr) VALUES ('$id2', '$name2', '$descr2') ON DUPLICATE KEY UPDATE name='$name2', descr='$descr2';";
$sql.= "INSERT INTO categories (id, name, descr) VALUES ('$id3', '$name3', '$descr3') ON DUPLICATE KEY UPDATE name='$name3', descr='$descr3';";
$sql.= "INSERT INTO categories (id, name, descr) VALUES ('$id4', '$name4', '$descr4') ON DUPLICATE KEY UPDATE name='$name4', descr='$descr4';";
if (!$mysqli->multi_query($sql)) {
echo "Multi query failed: (" . $mysqli->errno . ") " . $mysqli->error;
}else{
echo("Succes.");
}
$mysqli->close()
更新:用单个查询替换查询确实可行,但在所有情况下都不太可行,并且需要大量重写...使用硬编码变量无济于事。
$sql2 = "INSERT INTO categories (id, name, descr) VALUES ('$id1', '$name1', '$descr1'), ('$id2', '$name2', '$descr2'), ('$id3', '$name3', '$descr3'),('$id4', '$name4', '$descr4')
ON DUPLICATE KEY UPDATE name=VALUES(name), descr=VALUES(descr)";
最佳答案
如 php.net 所示,使用“面向对象的样式”解决了这个问题。 .仍然不确定为什么我以前的方法只在本地有效但没关系,我们称之为固定。
/* execute multi query */
if ($mysqli->multi_query($query)) {
do {
/* store first result set */
if ($result = $mysqli->store_result()) {
while ($row = $result->fetch_row()) {
printf("%s\n", $row[0]);
}
$result->free();
}
/* print divider */
if ($mysqli->more_results()) {
printf("-----------------\n");
}
} while ($mysqli->next_result());
}
/* close connection */
$mysqli->close();
关于php - Mysqli multi_query 不执行所有查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28399946/
我已经遵循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
我是一名优秀的程序员,十分优秀!