admin

警告:join()[function.join]:传递了无效的参数(PHP / MySQL查询)

sql

谁能告诉我我的代码有什么问题吗?我在最后一行收到错误消息“警告:join()[function.join]:传入的参数无效……”-echo join($
URL,’
‘);

我检查了这次讨论,但没有任何点击。我将查询粘贴到phpMyAdmin>
SQL中,它运行良好,返回一个表,该表包含两列,列出了字段URL中具有多个实例以及实例数量的值(例如Bill_Gates | 4)。

因此,看来我的代码肯定有问题-除非食物链上端的文件中存在错误,但我认为这不太可能。

$stm = $pdo->prepare("select URL, count(*)
from ((SELECT 'GZ' AS GSiteID, NULL as Site, 'Life' AS GSection, GZL.Taxon AS URL
       FROM gz_life GZL WHERE GZL.Taxon = :MyURL
      ) UNION ALL
      (SELECT 'All' AS GSiteID, NULL as Site, 'World' AS GSection, GG.Name AS URL
       FROM gw_geog GG WHERE GG.Name = :MyURL
      ) UNION ALL
      (SELECT 'PX' AS GSiteID, Site, 'People' AS GSection, Ppl.URL
       FROM people Ppl WHERE Ppl.URL = :MyURL
      )
     ) t
group by URL
having count(*) > 1;");
 $stm->execute(array(
 'MyURL'=>$MyURL
 ));

while ($row = $stm->fetch())
{
 $URL = $row['URL'];
}

echo join( $URL, '<br>' );

PS我张贴var_dump($ URL); 在上述脚本的最后,但只显示了string(9)“
Zachaenus”,这对我来说没有任何意义。(我认为Zachaenus是Life表中的科学名称。)但是我之前从未使用过var_dump,所以也许我做得不正确。


阅读 240

收藏
2021-07-01

共1个答案

admin

您需要首先使用胶水参数。

echo join( '<br>',$URL );
           ^^^^^  ^^^^   //<---- Order Interchanged

另外,您可以利用implode其中的连接进行相同的操作。

其次..$URL必须是数组。

$URL = array();
while ($row = $stm->fetch())
{
 array_push($URL,$row['URL']);
}
2021-07-01