【问题标题】:save pdo query result to variable and use it on other queries将 pdo 查询结果保存到变量并在其他查询中使用
【发布时间】:2017-10-10 13:34:18
【问题描述】:

我是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.阿提拉

【问题讨论】:

  • 你能帮助我们理解这个问题吗?您的第二个数据库有多行 WHERE contract_id 与该值匹配,对吗?或者您是否想要第二个数据库中第一个数据库中每个值的结果?
  • "contractid" 是两个数据库之间的唯一键。我有来自第一个数据库的多个contract_id,我正在寻找第二个数据库中的每个匹配行。但是对于我的解决方案,第二个查询中的 $contractid 变量仅包含第一个查询中的最后一个“contractid”,因此它只导致一个结果:-(
  • 当代码部分 1 结束时,$contractId 有一个值:循环中的最后一个值。该值用于第二个查询。您需要在第二个代码中使用第一个循环的每个 $contractId
  • 感谢您的建议。我该怎么做?
  • 初学者没什么错。但是,如果您的目标是学习,也许可以先尝试一些更简单的事情。就像把一个循环放在一个循环中,如果你不能让它工作,展示你尝试了什么以及你有什么问题。如果您只是在寻找解决方案,请让程序员为您编写代码。 stackoverflow.com/help/on-topic

标签: php postgresql pdo


【解决方案1】:

如果我明白你的意思。 您需要在第一个查询的循环中进行第二个查询,以便对于第一个查询的每个可用 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

这样的事情应该可行,只是得到这个想法并为自己实现它

【讨论】:

  • 感谢您的帮助。我已经尝试过这个解决方案,但结果完全一样:当我在第一个查询的循环中进行第二个查询时,第一个查询的结果减少到一个命中。
猜你喜欢
  • 2021-03-01
  • 2021-10-25
  • 1970-01-01
  • 1970-01-01
  • 2013-03-26
  • 2017-12-24
  • 2020-06-13
  • 1970-01-01
  • 2019-12-29
相关资源
最近更新 更多