我有这个查询
$query = "Select * FROM table WHERE table.firs_column = 1;
Select * FROM table WHERE table.second_column = 1;
Select * FROM table WHERE table.third_column = 1;
Select * FROM table WHERE table.column = 1";
$stmt = $db->prepare($query);
$result = $stmt->execute();
我希望有多个结果,每个结果都有一个查询的结果! 怎么做?
答案 0 :(得分:2)
看起来您正在使用PDO,因此您可以执行以下操作:
$first_set = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->nextRowset();
$second_set = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->nextRowset();
$third_set = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->nextRowset();
$fourth_set = $stmt->fetchAll(PDO::FETCH_ASSOC);
获取4个行集。
答案 1 :(得分:1)
如果您的多个查询的表格相同,则可以使用UNION
Select * FROM table WHERE table.firs_column = 1
UNION
Select * FROM table WHERE table.second_column = 1
UNION
Select * FROM table WHERE table.third_column = 1
UNION
Select * FROM table WHERE table.column = 1
答案 2 :(得分:1)
由于我们对您的数据库结构一无所知,我建议您查看mysqli::multi_query()
。
如果您尝试提取相关数据,我强烈建议您考虑使用MySQL JOIN
s。 MySQL本身就是另一种语言,它应该作为一种独特的语言学习,而不仅仅是在PHP中连接的字符串。
答案 3 :(得分:1)
完成第一个结果集后,使用nextRowset()
方法前进到下一个结果集。
您需要具有支持此方法的PHP MySQL 驱动程序扩展名。
答案 4 :(得分:0)
不确定您的目标是什么,但是您尝试了UNION
吗?
您的SQL语句如下所示:
SELECT * FROM table WHERE table.firs_column = 1
UNION
SELECT * FROM table WHERE table.second_column = 1
UNION
SELECT * FROM table WHERE table.third_column = 1
UNION
SELECT * FROM table WHERE table.column = 1;
如果你想到不同的东西,请显示你想要的结果。