【发布时间】:2014-03-05 13:44:00
【问题描述】:
当我在 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 是 table1 中满足请求条件的行的 id。
如何让它返回完整的结果数组?
【问题讨论】:
-
你的 php 代码中是否有一个循环来读取所有值?
-
你能不能只用“UNION”而不用“UNION ALL”试试,而且你确定另外两个表有数据吗?
-
stackoverflow.com/questions/14456529/… - 这可能会有所帮助
-
我遇到了类似的问题,最好的方法是回显查询,它为我确定了错误。基本上 $query 是空的,因为它的格式不正确,因为它使用了多个 ' '。