我很难尝试使用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)。
非常感谢。
答案 0 :(得分: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 />';
}
}