doupu1949 2013-10-20 23:20
浏览 189
已采纳

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

please be easy on me, i just started learning PDO and still finding my way how to convert my mysqli to PDO.

so i have a function to get the contents from my database

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;
}

normally when i return $row in mysqli, i would define fetch_assoc() in my while loop.

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

Now, since (PDO::FETCH_ASSOC) is already declared in my function.

how would i properly create my while loop to print the values in PDO?

[edit] updated code

i will be declaring my while loop outside of the function. so i need something to return from my function but i dont know what that is..

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

    return $row;
}

this is my while loop outside the function.

$sql = getContent();

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

展开全部

  • 写回答

1条回答 默认 最新

  • dqc2017 2013-10-20 23:26
    关注

    With fetchAll() you don't have to use while at all. As this function returns an array, you have to use foreach() instead:

    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'];
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部