问题标签 [mysqli-multi-query]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - mysql 查询可在 phpmyadmin 上工作,但不能在 mysqli 上工作
我有一个在 phpmyadmin 中有效但在 php ( mysqli
)上无效的查询
问题出在哪里 ?
询问:
错误:
mysqli_multi_query
1)我为此使用php
php - MYSQL NEIGHBOR ROWS 和 CURRENT ROW
MYSQL 查询以获取相邻行以及当前(id)给定条件
喜欢
我在 id 3 上(我可以从 url 获得的 dnsaddds)并且我搜索了书籍。现在我需要获取第三行的行数据,以及搜索文本(书籍)的下一个和上一个结果
预期结果如下
寻找没有联合等的单个查询。
php - 为什么我收到错误“命令不同步;您现在无法运行此命令”
标题中提到的错误的文档说
如果您的命令不同步;您现在无法在客户端代码中运行此命令,您正在以错误的顺序调用客户端函数。
例如,如果您正在使用 mysql_use_result() 并在调用 mysql_free_result() 之前尝试执行新查询,则可能会发生这种情况。如果您尝试执行两个返回数据的查询而不在两者之间调用 mysql_use_result() 或 mysql_store_result() ,也会发生这种情况。
从这里:http ://dev.mysql.com/doc/refman/5.0/en/commands-out-of-sync.html
但是在第一个查询中,我没有从 mysql 数据库中获取任何数据,我只是在插入。在第二个查询中,我从数据库中获取数据。
这是我的代码
到这一步为止,一切都很好。但是当我执行以下查询时,它给出了错误
在这里它给出了 Error Commands out of sync; you can't run this command now
。我无法理解这种情况
注意:查询中有任何问题,我已经直接对 PHPMyAdmin 执行了相同的查询,它工作正常。
php - mysqli_store_result() 实际上做了什么?
我想了解 Whatmysqli_store_result
实际上是做什么的?当我访问 的PHP 手册时mysqli_store_result
,我找到了定义
问题是它在哪里传输结果集?"Commands out of sync; you can't run this command now"
实际上我在执行后得到了错误mysqli_multi_query
但是当我使用以下方法时,错误消失了。
现在,我应该在每个之后还是之后使用它mysqli_store_result($connection)
,因为我已经在 PHP Manaul 中阅读过mysqli_next_result($connection)
mysqli_query
mysqli_multi_query
“虽然使用 mysqli_free_result() 函数释放查询结果所使用的内存始终是一种好习惯,但在使用 mysqli_store_result() 传输大型结果集时,这一点变得尤为重要。”
又出现一个问题 当我执行上述操作时,mysqli_multi_query($connection,$query);
我发表了echo 'storing result <br />'
如下声明
虽然 $query 中只有两个 INSERT 查询,但它给出了以下输出
这意味着有四个结果集被转移。我无法理解这种情况。最后一个问题。上述do while
过程是否会影响性能?
php - Mysqli query performance multi-query
I was just hoping someone could help me speed up 4 queries with a multi query.
GOAL: a single multi query to function as the single queries below.
Simple queries, i am checking one table to see if user is banned, then if not, i am getting row for the id and updating it's view count by 1. If user is banned, i do not want the last to queries to complete.
Thank you in advance for your help.
current performance is around 1200ms. (+1000ms avg for facebook graph api query).
NOTE: af_freefeed.pageid & af_ban.pageid are both indexed in database.
ALSO: I have been studying and referencing from http://www.php.net/manual/en/mysqli.multi-query.php
i just can not see how to get this config into multi with the if()
actual request times.
- grah api: 1127.04610825ms.
- conncect: 1.20711326599ms.
- check banned: 0.405788421631ms.
- get row: 418.189229965ms.
- increment views: 472.24655151ms.
- get top20: 94.31447983ms.
Multi_query #1 How to stop the multi query if user is banned?
Possible Contender: 943.8181ms. if added : 933.1279ms. if banned
10ms difference if exit loop for banned. This leads me to believe the loop is completing all the queries before they are actually supposed to be executed, "next_result". Or i have an error in how i looped the functions.
replaced
exit;
with$thread_id = $fconn->thread_id; $fconn->kill($thread_id);
if banned 953.4719ms. no gain.
Multi_query #2 "current for benchmark" How to remove duplicate fields in result set after next_result()?
2.667ms. / 1032.2499ms. but print_r is showing duplicate fields in $thisresults?
php - PHP Mysqli multi_query 和触发器的分隔符
我需要在 PHP 中运行一个数据库创建脚本。使用 multi_query 我发现触发器分隔符有一些问题:
有了这个我得到:
你的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 'DELIMITER ;; 附近使用正确的语法 tr_insert_test
在第 1 行插入“测试”后创建触发器
如果我在 phpmyadmin 中尝试相同的脚本,它可以工作......你能告诉我为什么吗?谢谢
php - PHP 数组和 mysqli 多查询
我试图理解两件事:
- 如果以下情况是可能的;
- 我在实施它时做错了什么。
我在 PHP 中有一个手动编码的数组:
我有一个单独的mysqlimulti-query
正在带回另一组数据。当我遍历多查询和回显结果时,我需要包含手动编码的 PHP 数组中的信息,如上所述 - 我当前的代码如下:
我有一个指针$n
随着 mysqli 查询循环遍历结果而增加,我正在使用它$q[$n]
来尝试从 PHP 查询中提取相关数据,但它不起作用。然而,奇怪的是我更改$q[1] = 'Monday';
为$q = 'Monday';
然后$q
在我的回声语句中引用 - 它有效!
我还包括下面的 mysqli 代码供参考:
关于我哪里出错的任何想法,想法,建议?
php - MySQL 将表内容移动到另一个表中的单个单元格
好的,所以我有两张桌子。让我们称它们为test2和test2history。
test2 看起来像这样:(
来源:gyazo.com)
test2history 看起来像这样:
我需要从表 test2 中提取多个单元格并将它们放入 test2history 中的一个单元格中。test2 中的 week 列将设置为 test2history 中的 week 值。
test2 中的 day 列转换为:
- 0 = 未设置
- 1 = 星期一
- 2 = 星期二
- 3 = 星期三
- 4 = 星期四
- 5 = 星期五
在我正在处理的网站上,单击提交时,它应该从 test2 中提取所有单元格数据,其中 week 是 URL 中的 $_GET['week'] 。这很容易,我有。但是,它需要搜索它找到的行,然后将'day'值相同的'map'值放入test2history中相应的工作日。让我停在那里,因为我知道我解释它的方式令人困惑,让我给你一个视觉效果:
这就是我需要它的工作方式:
test2history 中的“total”列应设置为 test2 中具有相同周数的卡片的总和。我自己可以做到这一点,我只是想确保您了解正在发生的事情。
我已经阅读了一些 group_concat() 这似乎是我需要使用的,但我只是找不到与我需要它做什么相关的好的解释。这甚至可能不是我需要的。
我努力写的查询在任何形式或形式上都不正确,但我试过了,但我不知道如何处理这个问题,希望你们中的一个人这样做。谢谢你的帮助。
php - 从 mysql 数据库社交网站重新请求帖子
我正在做一个社交网络网站项目。我已经创建了数据库和一切。帖子表有一个preference
列,它根据帖子从用户那里获得的点赞和评论以及帖子的创建时间来存储偏好值。要从 posts 表中检索用户主页的帖子,我正在使用 join 运行查询,该查询使用preference
column 排序。现在,假设我检索了 10 个要显示在帖子表上的用户的帖子,并且用户向下滚动,并且用户又发出了一个请求,以检索服务器的下 10 个帖子。
如果在这些请求之间,很少有其他用户创建新帖子或数据库中帖子的偏好值在这之间发生变化,现在如果我在服务器上运行第二个请求,则所有帖子都将用于第二个请求(即显示接下来的 10 个帖子),但由于数据库已更新,这意味着在第二个请求中,很可能在第二个请求中检索到前 10 个帖子中的少数几个。
我想知道如何避免这些重复的请求。当他们的数据库是动态的时,facebook 或任何其他社交网络如何在后端解决这个问题。
mysql - mysql time_zone 没用过?
我正在尝试将表中的条目插入或更新到雅典时区。我正在使用共享主机,所以我无法设置全球服务器时区。
当我运行这个多重查询时:
我得到了想要的雅典时间,但是当我运行类似的东西时:
设置更新条目的时间仍然是服务器的时间!为什么会发生这种情况,我该如何解决?