首頁 >後端開發 >php教程 >如何使用PDO進行SELECT查詢? (程式碼範例)

如何使用PDO進行SELECT查詢? (程式碼範例)

藏色散人
藏色散人原創
2019-03-15 14:31:515150瀏覽

使用PDO執行SELECT查詢的方法是有幾種的,它們的差異主要在於參數的存在、參數的類型和結果類型。我將為每種情況展示範例,以便可以選擇最適合的一個。

如何使用PDO進行SELECT查詢? (程式碼範例)

沒有參數的SELECT查詢

#如果查詢中沒有要使用的變數,我們可以使用傳統的query ()方法

// 选择所有用户
$stmt = $pdo->query("SELECT * FROM users");

這將給我們一個$stmt對象,它可以用來取得實際的行。

取得一行

如果一個查詢只回傳一行,那麼你可以呼叫$stmt變數的fetch()方法:

//获取最后一个注册用户
$stmt = $pdo->query("SELECT * FROM users ORDER BY id DESC LIMIT 1");
$user = $stmt->fetch();

注意,在PHP中,你可以呼叫已傳回物件的方法,如:

$user = $pdo->query("SELECT * FROM users ORDER BY id DESC LIMIT 1")->fetch();

查詢多行

有兩種方法可以取得查詢傳回的多行。最傳統的方法是在while迴圈中使用fetch()方法:

$stmt = $pdo->query("SELECT * FROM users");
while ($row = $stmt->fetch()) {
    echo $row[&#39;name&#39;]."<br />\n";
}

如果必須逐一處理行,可以建議使用此方法。例如,如果這樣的處理是唯一需要採取的操作,或者資料在使用之前需要以某種方式進行預處理。

但是取得將顯示在web頁面上的多行資料的最佳方法是呼叫名為fetchAll()方法。它會將查詢傳回的所有行放入PHP數組中,以後可以使用模板輸出資料(這被認為比在獲取過程中直接回顯資料好得多)。

程式碼如下:

$data = $pdo->query("SELECT * FROM users")->fetchAll();
foreach ($data as $row) {
    echo $row[&#39;name&#39;]."<br />\n";
}

帶參數的SELECT查詢

但是大多數時候,我們必須在查詢中使用一兩個變量,在在這種情況下,我們應該使用一個預處理語句(也稱為參數化查詢),首先用參數(或占位符標記)準備一個查詢,然後執行它,分別發送變數。

在PDO中,我們可以同時使用位置佔位符和命名佔位符。對於簡單的查詢,就我個人而言,我更喜歡位置佔位符,我發現它們不那麼冗長,但這完全是個人喜好的問題。

使用位置佔位符的SELECT查詢

//通过id选择特定的用户
$stmt = $pdo->prepare("SELECT * FROM users WHERE id=?");
$stmt->execute([$id]); 
$user = $stmt->fetch();

使用命名佔位符的SELECT查詢

// 通过id选择特定的用户
$stmt = $pdo->prepare("SELECT * FROM users WHERE id=:id");
$stmt->execute([&#39;id&#39; => $id]); 
$user = $stmt->fetch();

本篇文章是關於使用PDO進行SELECT查詢的相關介紹,希望對需要的朋友有幫助!

以上是如何使用PDO進行SELECT查詢? (程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn