簡體   English   中英

mysqli_query while循環到PDO

[英]mysqli_query while loop to PDO

我正在嘗試升級從mysqli_query從sql到fetchall的sql數據獲取方式。

$res = mysqli_query($db, "SELECT * FROM forum_index WHERE forum_over='yes'");
        while ($arr = mysqli_fetch_assoc($res)) {
        ......
    }

因此,當我使用fetchAll()時,我會得到一個數組,那么我應該使用foreach()還是有一種更聰明的方式來做到這一點?

並從數據庫中收集單個值,這是正確的方法嗎?

$fid = (int)$_GET['id'];
$thread = $db->query("SELECT * FROM forum_threads WHERE f_id=".$fid)->fetch_array();
    echo $thread['id'];

您不需要僅因為使用PDO而使用fetchAll() 如果查詢返回大量數據,這可能會減慢速度,因為它必須將所有數據收集到內存中。 您可以使用與mysqli代碼相同的循環:

$res = $pdo->query("SELECT * FROM forum_index WHERE forum_over='yes'");
while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
    ...
}

關於第二個問題,您應該使用參數化查詢,而不是替代變量。

$stmt = $pdo->prepare("SELECT * FROM forum_threads WHERE f_id= :id");
$stmt->bindParam(':id', $_GET['id']);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM