php - UNION 查询在 mysql 中工作,但在 php 中工作不一样

标签 php mysql sql

当我在 mysql 中运行此查询时,它会正确返回所有请求的结果:

SELECT row_id FROM table1 WHERE status = n 
UNION ALL 
SELECT row_id FROM table2 WHERE status = n 
UNION ALL 
SELECT row_id FROM table3 WHERE status = n

但是,当我从 PHP 运行它时,它仅返回一条记录,即满足请求条件的第一行。

$query = mysqli_query($link, "SELECT row_id FROM table1 WHERE status = n 
UNION ALL 
SELECT row_id FROM table2 WHERE status = n 
UNION ALL 
SELECT row_id FROM table3 WHERE status = n");

print_r(mysqli_fetch_array($query));

因此 print_r 显示以下内容:Array ( [0] => 1 [row_id] => 2580 ),其中 2580 是一个 id table1 中满足请求条件的行。

如何让它返回完整的结果数组?

最佳答案

您可以尝试循环打印数据,例如:

$query = mysqli_query($link, "SELECT row_id FROM table1 WHERE status = n 
UNION ALL 
SELECT row_id FROM table2 WHERE status = n 
UNION ALL 
SELECT row_id FROM table3 WHERE status = n");

while($row = mysqli_fetch_array($query)){
    print_r($row);
}

简单地说,mysqli_fetch_array 仅返回循环中的当前行。您需要循环遍历它才能获得所有结果。

关于php - UNION 查询在 mysql 中工作,但在 php 中工作不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22199551/

相关文章:

mysql - 如何从外键表访问数据

java - Spring + Java : Timestamp cannot be cast to Date? 从 SQL 中提取,但类型为日期。代码中没有时间戳

mysql - 仅选择多个结果集中的行

php - 将记录从 mysql 导出到文本文件时结果变为空白

php - 计算 SQL 查询中的行数与使用 PHP 更新字段

PHP 表单按钮不提交;仅页面刷新

javascript - 如何从特定PHP结构中的 slider 获取值

mysql - Ubuntu mySQL 服务器管理员 GUI - 如何在 gui 中查看实际的数据库表数据?

php - PHP session 修改了缓存控制 header ?

php - 根据 URL 运行不同的 MySQL 查询