php – 无法弄清楚如何运行mysqli_multi_query并使用上一个查询的结果
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 无法弄清楚如何运行mysqli_multi_query并使用上一个查询的结果,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2482字,纯文字阅读大概需要4分钟。
内容图文
![php – 无法弄清楚如何运行mysqli_multi_query并使用上一个查询的结果](/upload/InfoBanner/zyjiaocheng/890/65b3b25a26224dc1ac0772bc4e1805f7.jpg)
我之前从未使用过mysqli_multi_query而且它让我的大脑难以置信,我在网上找到的任何例子并没有帮助我弄清楚我想要做什么.
这是我的代码:
<?php
$link = mysqli_connect("server", "user", "pass", "db");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$agentsquery = "CREATE TEMPORARY TABLE LeaderBoard (
`agent_name` varchar(20) NOT NULL,
`job_number` int(5) NOT NULL,
`job_value` decimal(3,1) NOT NULL,
`points_value` decimal(8,2) NOT NULL
);";
$agentsquery .= "INSERT INTO LeaderBoard (`agent_name`, `job_number`, `job_value`, `points_value`) SELECT agent_name, job_number, job_value, points_value FROM jobs WHERE YEAR(booked_date) = $current_year && WEEKOFYEAR(booked_date) = $weeknum;";
$agentsquery .= "INSERT INTO LeaderBoard (`agent_name`) SELECT DISTINCT agent_name FROM apps WHERE YEAR(booked_date) = $current_year && WEEKOFYEAR(booked_date) = $weeknum;";
$agentsquery .= "SELECT agent_name, SUM(job_value), SUM(points_value) FROM leaderboard GROUP BY agent_name ORDER BY SUM(points_value) DESC";
$i = 0;
$agentsresult = mysqli_multi_query($link, $agentsquery);
while ($row = mysqli_fetch_array($agentsresult)){
$number_of_apps = getAgentAppsWeek($row['agent_name'],$weeknum,$current_year);
$i++;
?>
<tr class="tr<?php echo ($i & 1) ?>">
<td style="font-weight: bold;"><?php echo $row['agent_name'] ?></td>
<td><?php echo $row['SUM(job_value)'] ?></td>
<td><?php echo $row['SUM(points_value)'] ?></td>
<td><?php echo $number_of_apps; ?></td>
</tr>
<?php
}
?>
我要做的就是运行多个查询,然后使用这4个查询的最终结果并将它们放入我的表中.
上面的代码根本不起作用,我只是得到以下错误:
Warning: mysqli_fetch_array() expects
parameter 1 to be mysqli_result,
boolean given in
C:\xampp\htdocs\hydroboard\hydro_reporting_2010.php
on line 391
任何帮助?
解决方法:
从manual开始:mysqli_multi_query()返回一个表示成功的bool.
To retrieve the resultset from the first query you can use mysqli_use_result() or mysqli_store_result(). All subsequent query results can be processed using mysqli_more_results() and mysqli_next_result().
这是一个返回多个查询的最后结果的函数:
function mysqli_last_result($link) {
while (mysqli_more_results($link)) {
mysqli_use_result($link);
mysqli_next_result($link);
}
return mysqli_store_result($link);
}
用法:
$link = mysqli_connect();
$query = "SELECT 1;";
$query .= "SELECT 2;";
$query .= "SELECT 3";
mysqli_multi_query($link, $query);
$result = mysqli_last_result($link);
$row = $result->fetch_row();
echo $row[0]; // prints "3"
$result->free();
mysqli_close($link);
内容总结
以上是互联网集市为您收集整理的php – 无法弄清楚如何运行mysqli_multi_query并使用上一个查询的结果全部内容,希望文章能够帮你解决php – 无法弄清楚如何运行mysqli_multi_query并使用上一个查询的结果所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。