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

标签 php mysql sql

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

我检查了this discussionthis one ,但没有任何点击。我将查询粘贴到 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>' );

附注我发布了 var_dump($URL);在上面脚本的最后,但它只显示 string(9) "Zachaenus",这对我来说没有任何意义。 (我认为 Zachaenus 是 Life 表中的一个学名。)但我以前从未使用过 var_dump,所以也许我做得不正确。

最佳答案

您需要首先使用glue参数。

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

或者,您可以使用 implode它对连接执行相同的操作。

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

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

关于php - 警告 : join() [function. join]:传递的参数无效(PHP/MySQL 查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21358773/

相关文章:

php - 如何重命名 Symfony 3/Doctrine 中的表?

php - Laravel - 通过外部 API 进行身份验证

php - 为什么 MYSQL 在与 int 值比较时将 NULL 或 String 值转换为 0?

php - mysqli_real_escape_string 存在漏洞

python - 比较两个名字和姓氏列表以找到匹配项

sql - 如何在 CTE 或子查询中引用 DISTINCT 列名称?

php - symfony2 FOSElasticaBundle:当Elasticsearch服务关闭时,如何推迟文档更新?

php - MySQL 计算一段时间内共享至少 3 列中的 1 列的条目数

php - 人们可以通过在地址栏中输入 URL 来访问管理面板页面

sql - 识别两个表之间差异的最快方法?