在PHP開發中,PDO是一種流行的數據庫擴展,它提供了與數據庫的更高級別的交互性和增加了程序的安全性。在這其中,PDO的fetch方法是操作數據庫查詢結果的重要方法,本文將介紹fetch方法的使用以及具體實戰案例。
fetch方法是從查詢結果中獲取單行記錄的方法,可以使用不同種類的參數來決定返回值的方式。下面將從不同方式的示例開始講解:
(1)fetch(PDO::FETCH_ASSOC)
這是默認的參數,返回關聯數組,其中數組索引名稱為SQL查詢中列名的大寫字母
示例1:
<?php try { $dbh = new PDO($dsn, $user, $password); $sth = $dbh->prepare('SELECT * FROM student'); $sth->execute(); $result = $sth->fetch(PDO::FETCH_ASSOC); print_r($result); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } ?>(2)fetch(PDO::FETCH_NUM) 返回一個數字的數組,數組從0開始排序,列名不會返回,只返回數據值。
示例2:
<?php try { $dbh = new PDO($dsn, $user, $password); $sth = $dbh->prepare('SELECT * FROM student'); $sth->execute(); $result = $sth->fetch(PDO::FETCH_NUM); print_r($result); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } ?>(3)fetch(PDO::FETCH_BOTH) 返回一個包含數字的索引和關聯數組的同時的數組。(默認情況下)
示例3:
<?php try { $dbh = new PDO($dsn, $user, $password); $sth = $dbh->prepare('SELECT * FROM student'); $sth->execute(); $result = $sth->fetch(PDO::FETCH_BOTH); print_r($result); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } ?>(4)fetch(PDO::FETCH_OBJ) 返回數據為指定數據類的對象,其中每個屬性名稱為列名
示例4:
<?php try { $dbh = new PDO($dsn, $user, $password); $sth = $dbh->prepare('SELECT * FROM student'); $sth->execute(); $result = $sth->fetch(PDO::FETCH_OBJ); print_r($result); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } ?>(5)fetch(PDO::FETCH_LAZY) 該參數將為每個列名返回包含指定值的對象。但是,對于專業知識外的開發人員來說,這是不推薦的。
示例5:
<?php try { $dbh = new PDO($dsn, $user, $password); $sth = $dbh->prepare('SELECT * FROM student'); $sth->execute(); $result = $sth->fetch(PDO::FETCH_LAZY); print_r($result); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } ?>從上述示例可以看出,fetch的參數類型區分了返回值的方式,在實際開發中可根據需求進行選擇從而獲取到自己需要的數據。 在實際操作過程中,由于查詢結果可能包含多列數據,可以使用while()循環語句來遍歷結果集。
示例6:
<?php try { $dbh = new PDO($dsn, $user, $password); $sth = $dbh->prepare('SELECT * FROM student'); $sth->execute(); while($result = $sth->fetch(PDO::FETCH_ASSOC)){ print_r($result); } } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } ?>在上面的代碼中,使用while()循環,通過fetch(PDO::FETCH_ASSOC)獲取了每一行數據并輸出,遍歷結果集。 PDO的fetch方法是數據操作中很重要的一個方法,上述介紹不僅有fetch的參數類型,還有其在實際開發中的實戰案例。對于同PHP開發者而言,加深對fetch方法的掌握不僅可以提升程序的效率,還可以避免程序運行中可能存在的安全風險。
下一篇php pdo輸出