2012-08-30 28 views
2

我決定把我的項目遷移到準備好的發言,我有一個錯誤執行以下代碼後:錯誤與PDO(預處理語句) - 無法使用類型PDOStatement對象的對象數組

$sql = 'SELECT clanID FROM clan_users WHERE userID = :uid LIMIT 1'; 
$data = $this->pdo->prepare($sql); 
$data->execute(array(':uid' => $uid)); 
$data->fetchAll(); 

return $data['0']['clanid']; 

返回錯誤:

Fatal error: Cannot use object of type PDOStatement as array in 
/var/www/game/classes/Clan.class on line 689 

的var_dump($ data)返回:

object(PDOStatement)[122] 
    public 'queryString' => string 'SELECT clanID FROM clan_users WHERE userID = :uid LIMIT 1' (length=57) 

的VALU $ uid的e是正確的,並且在mysql中手動選擇將返回預期的行。我也試過更改爲

$data->fetch(PDO::FETCH_OBJ); 

但沒有工作太多。

任何想法?提前致謝。

回答

5

$data變量只是聲明。實際上,你需要$data->fetchAll()結果被填充到一個不同的變量是這樣

$data_array = $data->fetchAll(); 

然後用$ data_array中工作,而不是與$data直接。

+0

這是正確的!非常感謝。 –

相關問題