我的示例项目遇到了问题

时间:2019-06-22 14:04:55

标签: php pdo

已编辑...

大家好,有人可以帮助我访问我的网站

我只想在评论区域中获得特定评论,就像在Facebook中一样

<?php 
require 'db.php';
$sql = 'SELECT * FROM comment WHERE postID = postID';
$statement = $connection->prepare($sql);
$statement->execute();
$comment = $statement->fetch(PDO::FETCH_OBJ);
?>

我的意思是,如果我在第一篇文章中发表评论,它只会获取当前评论,而不会在另一篇文章中显示。

2 个答案:

答案 0 :(得分:2)

我相信答案会像这样:

<?php 
require 'db.php';
$postId = 1; // get it somewhere, probably from $_GET
$sql = 'SELECT * FROM comment WHERE postID = ?';
$statement = $connection->prepare($sql);
$statement->execute( [$postId]);
$comment = $statement->fetch(PDO::FETCH_OBJ);
?>

说明,从注释复制到原始问题:

  

您的SQL条件postID = postID从字面上说明任何注释。您需要在此处传递实际的帖子ID。

答案 1 :(得分:2)

这是您的查询当前正在做的事情:

  

从表注释中获取记录,其中字段postID = postId

这当然是行不通的,您使用的是字符串(不带引号)作为值。您需要绑定参数并传递值,例如

$sql = 'SELECT * FROM `my_table` WHERE `some_field` = :myVal;';
$res = $conn->prepare($sql);
$res->execute([':myVal' => $_GET['id']]);

$data = $res->fetchAll(PDO::FETCH_ASSOC);

在这里,我将bind参数(:myVal)传递给bind,然后准备该语句。然后,您传递:myVal的值(在这种情况下,是查询参数$_GET的{​​{1}})。

然后获取id / var_dump,您应该在脚本中看到表数据。