PHP - PDO运行多个选择查询[重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

我正在尝试使用来自几个不同表格的信息填充谷歌地图。

$con = new PDO("mysql:host={$host};dbname={$db};charset={$charset}", $user, $pass);

$new_qry = "SELECT * FROM Contractors WHERE `Name` = 'John';";
$new_qry.= "SELECT * FROM Interns WHERE `Name` = 'Mike'";
$stmt = $con->prepare( $new_qry );
$stmt->execute();

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    extract($row);
    $new_lat = $row['Latitude'];
    $new_long = $row['Longitude'];
    .
    .
    .etc

我保存所需的信息并为每个结果制作地图标记。但我没有得到第二个查询的结果。还有其他方法可以运行多个查询吗?我最终希望一次运行2次以上。

配置:

  • PHP版本:5.6+
  • PDO :: ATTR_EMULATE_PREPARES = 1
php mysql sql pdo
1个回答
0
投票

从评论中,我怀疑您可以选择两个表共有的列列表,并使用UNION ALL在单个查询中获取所有信息:

SELECT Latitude, Longitude, ...
FROM Contractors 
WHERE `Name` = 'John'
UNION ALL
SELECT Latitude, Longitude, ...
FROM Interns 
WHERE `Name` = 'Mike'

请记住,两个联合查询必须返回相同的列列表,具有相同的数据类型(除非MySQL对此松懈)。 SQL中的一般要求是查询必须返回一组固定的列,每列中具有一致的数据类型。

© www.soinside.com 2019 - 2024. All rights reserved.