0

我很难尝试使用 PDO 准备好的语句从表中检索数据,

下面是我的代码,它不起作用, $post 总是空的。

    //connection to db has been made
    $stmt = $db->prepare("SELECT * FROM posts WHERE id = ?");
    $stmt->bindValue(1,$_GET['id']);
    $post = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->execute();

我很确定问题出现在第三行,所以请让我知道是否有其他方法可以获取数据,而不是 fetchAll(PDO::FETCH_ASSOC)。

非常感谢。

4

1 回答 1

2

您实际上并没有执行该方法,但除此之外,您的代码看起来不错!

// Assuming $_GET['id'] has a value (thanks Mike!)
$stmt = $db->prepare("SELECT * FROM posts WHERE id = ?");
$stmt->bindValue(1, $_GET['id']);
$stmt->execute();

$post = $stmt->fetchAll(PDO::FETCH_ASSOC);

顺便说一句,我还要确保这$_GET['id']是有效的;is_int($_GET['id'])返回一个可以提供帮助的布尔值。


获取您的帖子后,请确保对其进行迭代。

if($post != null && count($post) > 0) {
    for($i = 0; $i < count($post); $i++) {
        echo $post[$i]['title'] . '<br />';
    }
}
于 2013-09-05T23:19:57.110 回答