PHP-PDO运行多个select查询

PHP-PDO运行多个select查询,php,mysql,sql,pdo,Php,Mysql,Sql,Pdo,我试图用几个不同的表中的信息填充谷歌地图 $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->prepar

我试图用几个不同的表中的信息填充谷歌地图

$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

我保存所需的信息,并为每个结果制作一个地图标记。但是我没有从第二个查询中得到结果。是否有其他方法可以运行多个查询?我最终想一次跑两次以上

配置:

PHP版本:5.6+ PDO::ATTR_EMULATE_PREPARES=1
从注释中,我猜想您可以选择两个表共有的列列表,并使用UNION all在单个查询中获取所有信息:


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

默认情况下,这没有意义。这两个查询是否返回相同的列?否则,结果集会是什么样子?是否有其他方法运行多个查询?是的,但我建议您不要使用这些。。最有可能的是你正在寻找一个加入或联盟都在这里。。我建议您阅读并提供示例数据和预期结果。表之间存在一些差异,但我需要的信息具有相同的列名。我从不推荐提取。几乎总是有更好的解决方案。SQL中的一般要求是查询必须返回一组固定的列。是的,事实上,SQL标准也要求列在两个选项之间的列中具有相同的数据类型。在MySQL中,这不是必需的,也不是一个更好的词。@RaymondNijland:是的,这是一个很重要的事情,谢谢!我更新了我的答案。除非MySQL对此松懈,也不是MySQL/MariaDB那样做,为什么SQL注入MySQL/MariaDB与UNION ALL数据库,数据库[…]顺序为1,2[,…]DESC LIMIT 1,1第一个select中的两列是否为INT并不重要……如果MySQL/MariaDb将强制执行数据类型,这将是一个更大的挑战,因为当您必须执行基于布尔值的盲SQL注入时。我认为这将不起作用,因为表与%100不匹配,这似乎可行。谢谢你们的帮助。即将制作一些疯狂的存储过程
SELECT Latitude, Longitude, ...
FROM Contractors 
WHERE `Name` = 'John'
UNION ALL
SELECT Latitude, Longitude, ...
FROM Interns 
WHERE `Name` = 'Mike'