0

我是 PDO 语法的新手,我喜欢学习曲线!我正在重构代码——从古老的 mysqli_* 方法迁移过来。

可以预见的是,作为一个新手,我遇到了一些障碍。其中一个重要的问题是(如果这是一个愚蠢的问题,请原谅)从数据库中检索数据并将其回显在页面上。这是我到目前为止所拥有的:

$getURLid = $_GET['id'];
$idQuery = $connection->prepare("SELECT * FROM pages WHERE page_id = :getURLid");
$idQuery->execute(array(':getURLid' => $getURLid));
$idRetrieved = $idQuery->fetchAll(); // This is the part I'm unclear on.

当我回$idRetrieved['value']显到页面时,什么都没有显示。我遗漏了一些东西或误解了它的工作原理。也许 fetchAll 不是我应该使用的。

如果是,是否需要一个循环来检索所有行?我的印象是 fetchAll 会根据我读过的内容自动循环遍历它们。

谢谢您的帮助。

4

1 回答 1

2

PDOStatement::fetchAll仔细阅读 doco 。它返回一个行数据数组。

表示每一行的数据类型取决于您的获取模式,默认情况下是PDO::FETCH_BOTH. 这意味着每一行都是一个包含数字键和关联键的数组。如果您只想关联地访问数据,我建议您使用PDO::FETCH_ASSOC,例如

$idRetrieved = $idQuery->fetchAll(PDO::FETCH_ASSOC);

然后,您需要循环或通过其索引访问每一行,例如

foreach ($idRetrieved as $row) {
    echo $row['value'];
}

// or

echo $idRetrieved[0]['value']; // assuming there's at least one row.
于 2014-03-05T01:08:48.273 回答