как правильно использовать цикл while в PDO fetchAll

пожалуйста, будьте легко на меня, я только начал изучать 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; } 

обычно, когда я возвращаю $row в mysqli, я бы определил fetch_assoc() в моем цикле while.

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

Теперь, поскольку (PDO::FETCH_ASSOC) уже объявлен в моей функции.

как правильно создать цикл while для печати значений в PDO?

[edit] обновленный код

Я буду объявлять мой цикл 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() вам вообще не нужно использовать . Поскольку эта функция возвращает массив , вместо этого вы должны использовать 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']; }