在MySQL中,我可以一次执行多个命令,例如:
Select * from Users; Select * from Classes;
从PHP调用命令时如何执行相同操作,例如:
$sql=mysqli_query($link, "select * from Users;");
while($rows=mysqli_fetch_array($sql)){
echo "<div>$rows[0]</div><div>$rows[1]</div>";
}
但是,它不起作用:
$sql=mysqli_query($link, "select * from Users; Select * from Classes");
while($rows=mysqli_fetch_array($sql)){
echo "<div>$rows[0]</div><div>$rows[1]</div>";
}
据我所知,在实践中这可能没有必要。考虑我需要使用PHP来管理MySQL数据库来模拟或开发我自己的接口版本。
答案 0 :(得分:3)
您可以通过“multi_query”选项实现此目的。
$query = "select * from Users;";
$query .= "Select * from Classes";
if (mysqli_multi_query($link, $query)) {
do {
/* store first result set */
if ($result = mysqli_store_result($link)) {
while ($row = mysqli_fetch_row($result)) {
printf("%s\n", $row[0]);
}
mysqli_free_result($result);
}
/* print divider */
if (mysqli_more_results($link)) {
printf("-----------------\n");
}
} while (mysqli_next_result($link));
}
mysqli_close($link);
答案 1 :(得分:0)
是的,你可以。在MySQL
[console]
中我可以执行一次多次命令
但技术上无论如何都会单独执行 。
因此,对mysqli_query()
的2次调用将完全相同。
因此,制作2个电话而不是一个电话没有问题。特别是因为没有一点可以一次完成。
尽管可以使用任何多查询解决方案,但它没有多大意义,只是让您的代码过于复杂且容易出错。
答案 2 :(得分:-1)
你不能同时运行两个查询,默认情况下mysql总是在半列i之后进行最后一次查询。它将从Classes运行Select *。而不是更好地将这两个查询联合起来。