任何人都可以告訴我我的代碼有什麼問題嗎?我在最後一行收到錯誤消息「Warning:join()[function.join]:invalid passed in ...」 - echo join($ URL,'
');警告:join()[function.join]:傳遞的參數無效(PHP/MySQL Query)
我檢查了this discussion和this one,但沒有任何點擊。我將查詢粘貼到phpMyAdmin> SQL中,並且它完美地工作,返回一個帶有兩列的表,其中列出了具有多個實例以及實例數(例如Bill_Gates | 4)的字段URL中的值。
所以它看起來像我的代碼一定有問題 - 除非在食物鏈上的文件中有一個錯誤,但我不認爲這是可能的。
$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>');
P.S.我發佈了var_dump($ URL);在上面的腳本的最後,但它只顯示字符串(9)「Zachaenus」,這對我沒有任何意義。 (我認爲Zachaenus是生命表中的一個科學名字。)但是我從來沒有使用過var_dump,所以也許我沒有正確地做。
這很奇怪;我得到相同的結果。我通常在ARRAY之後使用echo連接,像這樣... while($ row = $ stm-> fetch()) { $ URL [] = $ row ['URL']; } 但數組括號 - [] - 顯然不適用於這種查詢。我會做一些關於內爆的研究,看看它是否有效。謝謝。 –
'$ URL'必須是'join'或'implode'工作的數組。你是否在你的while循環中修改了'$ URL'作爲'$ URL []'? –
是的,我已經嘗試過,沒有括號,同時使用回聲連接和implode。但讓我再次通過我的測試,以確保我沒有做錯什麼... –