PHP – 使用PDO連資料庫遇到的query()、fatch()、fetchAll的問題

每使用一次 fetchAll() 或 fetch() 之前,一定要先 query()

有時候我們需要在同一頁輸出兩次資料,可以這麼寫,那麼兩次都能顯示資料。

 

如果這麼寫,那麼第二次會無法取得資料。

 

  1. fetchAll()比較好用,一次取出所有陣列。直接用foreach ()搭配就可以了。
  2. fetch() 一次取單筆資料,取完後指標會指向下一筆資料。可搭配while()一筆一筆取取到結束。
  3. fetch() 與 fatchAll() 預設參數是 PDO::FETCH_BOTH (同時取得陣列key的編號與SQL欄位名稱,我習慣用這個)。另有 PDO::FETCH_ASSOC 為陣列形式、PDO::FETCH_OBJ 為物件形式。
  4. 其他參數可參考 PHP 官網
  • php – PDO – 有趣的 PDO::FETCH_CLASS 用法


Comments

  1. Fatal error: Uncaught Error: Call to a member function fetchAll() on boolean

    我不懂…為甚麼

    • 應該是 SQL 錯誤,直接去 DB 測試你的 SQL 看看。
      有可能是資料表不存在喔

發表迴響