gpt4 book ai didi

php - 如何在 PDO fetchAll 中正确使用 while 循环

转载 作者:IT王子 更新时间:2023-10-29 00:07:12 27 4
gpt4 key购买 nike

请对我放轻松,我刚刚开始学习 PDO,并且仍在寻找将 mysqli 转换为 PDO 的方法。

所以我有一个函数可以从我的数据库中获取内容

function getContent() {
$db = PDOconn();
$query = "SELECT * FROM posts ORDER BY id DESC LIMIT 0,3";
$sql = $db->prepare($sql);
$row = $sql->fetchAll(PDO::FETCH_ASSOC);

return $row;
}

通常当我在 mysqli 中返回 $row 时,我会在我的 while 循环中定义 fetch_assoc()

while ($row = $result->fetch_assoc())  {
$id = $row['id'];
$content = $row['content'];
}

现在,因为 (PDO::FETCH_ASSOC) 已经在我的函数中声明了。

我如何正确地创建我的 while 循环来打印 PDO 中的值?

[编辑]更新代码

我将在函数外声明我的 while 循环。所以我需要从我的函数返回一些东西,但我不知道那是什么..

function getContent() {
$db = PDOconn();
$query = "SELECT * FROM posts ORDER BY id DESC LIMIT 0,3";
$sql = $db->prepare($query);
$row = $sql->execute();

return $row;
}

这是我在函数外的 while 循环。

$sql = getContent();

while ($row = $sql->fetchAll(PDO::FETCH_ASSOC)) {
$id = $row['id'];
$content = $row['content'];
}

最佳答案

使用 fetchAll() 您根本不必使用 while。由于此函数返回一个 array,因此您必须改用 foreach():

function getContent() {
$db = PDOconn();
$query = "SELECT * FROM posts ORDER BY id DESC LIMIT 0,3";
$sql = $db->prepare($query);
$sql->execute();
return $sql->fetchAll();
}

$data = getContent();
foreach($data as $row) {
$id = $row['id'];
$content = $row['content'];
}

关于php - 如何在 PDO fetchAll 中正确使用 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19488364/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com