2013-01-23 53 views
0

如何當我做這個來:PDO使用fetchall非對象錯誤

<?php 
$pdo = new PDO("mysql:host=xxx;dbname=xxx", "xxx", "xxx"); 
$sql = $pdo->query("call GetFromCoords($lat, $lng)"); 

$sql = $pdo->query("call GetInRadius($zip, $dist)"); 
$rows = $sql->fetchAll(PDO::FETCH_ASSOC); 

我得到這個錯誤:

Fatal error: Call to a member function fetchAll() on a non-object in /home/ryannaddyps/weblyize.com/Party/nearby.php on line 28

但是,如果我運行一個新的連接第二個查詢,它的工作原理精細?

+0

已經$ pdo被初始化了嗎? –

+0

是的,這是第一次。 –

回答

1

使用nextRowset()嘗試:

$pdo = new PDO("mysql:host=xxx;dbname=xxx", "xxx", "xxx"); 
$sql = $pdo->query("call GetFromCoords($lat, $lng)"); 

$sql->nextRowset(); // This 

$sql = $pdo->query("call GetInRadius($zip, $dist)"); 
$rows = $sql->fetchAll(PDO::FETCH_ASSOC); 
+0

完美的作品! –

+0

很高興幫助:) – AlienWebguy

0

有沒有可能是你的SQL查詢觸發一個錯誤?根據manual,當查詢失敗時,PDO::query返回FALSE(即非對象)。

啓用error_reportingdisplay_errors或者用PDO::ERRMODE_EXCEPTION初始化連接。

相關問題