如何在PDO获取中正确使用同时循环全部

2022-08-30 18:27:05

请对我轻松一点,我刚刚开始学习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时,我会在我的while循环中定义。$rowfetch_assoc()

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

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

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

[编辑] 更新代码

我将在函数外部声明我的循环。所以我需要一些东西从我的函数返回,但我不知道那是什么。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'];
}

答案 1

有了你,你根本不需要使用。由于此函数返回一个数组,因此您必须改用:fetchAll()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'];
}

答案 2

推荐