2017-05-05 77 views
-2

所以,我有此數組:陣列將返回 「陣列()」

$id = DB::query('SELECT user_id FROM login_tokens WHERE token=:token', 
array(':token' => sha1($_COOKIE['SNID']))); 
$myusername = DB::query('SELECT username FROM users WHERE id=:id', array(':id' 
=> $id)); 

print_r($myusername); 

但它僅返回陣列()

+0

您的查詢失敗/空值。檢查錯誤和var_dump的所有內容 –

+0

'$ myusername'應該返回true/false – Akintunde007

+0

你正在使用什麼'DB'? –

回答

1

PDO::query返回值是一個PDOStatement對象。一般來說,你不會看到太多的print_r

如果你想要的結果,那麼也有PDOStatement三種方法將做的工作:

  • ->fetchAll()將獲取的所有數據作爲數組的數組
  • ->fetch()將獲取電流行作爲數組,然後指向下一行,或者如果沒有更多,則爲null。
  • ` - > fetchColumn([n])將獲取當前行的一個列(默認爲0),然後指向下一行(如果有的話)。

對於您的情況,您可以使用DB::query(…)->fetchColumn()完成工作。

+0

他只需要返回他自己釀造的類而不是fetchAll()的聲明,但是他拒絕這麼做,而是因爲外行的固執。很遺憾 –

+0

@YourCommonSense感謝對'fetchAll()'(oops〜)的修正 – Manngo