将pdo查询结果保存到变量并将其用于其他查询

时间:2017-10-10 13:34:18

标签: php postgresql pdo

我是php编程的新手,请帮助我。

我要从两个独立的数据库中进行两次postgres查询,但其中一个查询条件基于另一个查询结果:

第一次查询:

<?php
$result = "SELECT ...
WHERE ... ";
$query = $pgszlaConn->prepare($result);
$query->execute();

while($row = $query->fetch(PDO::FETCH_BOTH)) {
        $contractid=$row[0];
        echo "<tr><td>$contractid</td></tr>";
?>

/在这个查询中我有多个结果./

第二次查询:

<?php
$result = "SELECT ...
    WHERE contract.contract_id= :contract";
$query = $pgConn->prepare($result);
$query->bindparam(':contract', $contractid);
$query->execute();

while($row = $query->fetch(PDO::FETCH_BOTH)) {
        echo "<tr><td>$row[0]</td></tr>";
?>

我的问题是第二个查询只有一个结果基于第一个查询多个结果。

我不确定这是一个好的解决方案,但我的编程技巧不是那么先进; - )

如果可以,请帮助我!

非常感谢!

d。阿提拉

1 个答案:

答案 0 :(得分:-2)

如果我明白你的意思。 您需要在第一个查询的循环内进行第二个查询,以便对于第一个可用查询的每个id,将id传递给第二个查询以查询第二个表的数据库。

不是我的系统会向你显示我的一些代码。

while($row = $query->fetch(PDO::FETCH_BOTH)) {
    echo "<tr><td>$contractid</td></tr>";
## now you make the second query to the second table with the id of the first table
$result = "SELECT WHERE contract.contract_id= :contract";
while($row = $query->fetch(PDO::FETCH_BOTH)) {
    echo "<tr><td>$row[0]</td></tr>";
    } ## end of second query loop
} ## end of first query loop

这样的事情应该可以实现,并为自己实现