请对我很轻松,我刚刚开始学习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'];
}
答案 0 :(得分:28)
使用fetchAll()
,您根本不必使用while
。由于此函数返回数组,您必须改为使用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'];
}