我正在上课,我添加了一个评论系统。我现在想要添加报告评论的功能。
我在评论表中添加了一个名为report_active的列,我的想法是当它处于活动状态时(意味着已经报告)将其设置为1,当它不是时,将其设置为0。然后只需在adminCP中列出所有注释,并在其上显示活动报告。
我创建了一个名为report_comment.php
的文件,我打算只用它来运行查询,然后重定向回另一个页面。
这是我的report_comment.php
页面:
<?php
require_once('db_connect.php');
require_once('security.php');
if (isset($_GET['id'])) {
$report_active = 1;
$id = $_GET['id'];
$select = $db->query("SELECT * FROM comments WHERE id = ?");
$select->bind_param('i', $id);
if ($select->execute()) {
if ($select->num_rows) {
// Run the update query
$update = $db->query("UPDATE comments SET report_active = ? WHERE id = ?");
$update->bind_param('ii', $report_active, $id);
if ($update->execute()) {
header('Location: comments.php');
die();
}
}
}
}
?>
我做错了什么?因为这是我带来的错误:
Fatal error: Call to a member function bind_param() on a non-object
答案 0 :(得分:1)
$select = $db->query("SELECT * FROM comments WHERE id = ?");
^^^^^---execute the query immediately
你想要
$stmt = $db->prepare("SELECT * FROM comment WHERE id = ?");
^^^^^^^---note the diff
代替。另外,你应该检查是否有失败,例如
if ($stmt === false) {
die("Prepare failed with error: " . $db->errorInfo);
}
或类似的特定数据库库。