Php 如何检查ID是否不存在';你不存在吗。。?
我正在为班级制作一个游戏,我决定添加一个能够报告评论的评论系统。我创建了一个名为Php 如何检查ID是否不存在';你不存在吗。。?,php,mysqli,Php,Mysqli,我正在为班级制作一个游戏,我决定添加一个能够报告评论的评论系统。我创建了一个名为comments的表和一个名为report\u active的列。当用户报告注释时,该列中的值更改为1。然后,所有在活动报告列中带有1的注释都列在adminCP中 有一个名为comments.php的文件,它列出了所有注释,并允许用户添加新注释。在每条评论旁边,我添加了一个报告按钮,该按钮链接到一个名为report\u comment.php的文件。我使用这个文件来运行更新查询 该文件如下所示: <?php s
comments
的表和一个名为report\u active
的列。当用户报告注释时,该列中的值更改为1。然后,所有在活动报告
列中带有1的注释都列在adminCP中
有一个名为comments.php
的文件,它列出了所有注释,并允许用户添加新注释。在每条评论旁边,我添加了一个报告按钮,该按钮链接到一个名为report\u comment.php
的文件。我使用这个文件来运行更新查询
该文件如下所示:
<?php
session_start();
require_once('db_connect.php');
require_once('security.php');
if (isset($_GET['id'])) {
$report_active = 1;
$id = $_GET['id'];
$update = $db->prepare("UPDATE comments set report_active = ? WHERE id = ?");
$update->bind_param('ii', $report_active, $id);
if ($update->execute()) {
$_SESSION['reported'] = 'reported';
header('Location: comments.php');
die();
}
} else {
header('Location: comments.php');
}
?>
会话变量$\u session['reported']
是我用来确定是否向用户显示一个表示已报告评论的警报,然后我取消设置会话
我想问的是,我如何检查作为$\u GET
请求发送的ID是否确实存在,然后它是否运行常规的$\u会话['reported']
,如果没有,则设置一个新会话$\u会话['errorReport']
,然后显示并发出错误警报
我试过:
如果($update->execute()&&$update->num_rows){
但是这不起作用
是否有其他方法可以执行此操作?您可以像现在一样执行查询,并使用以下命令检查是否修改了任何行:
编辑:原始答案适用于PDO,对于mysqli,您可能需要使用它。我很抱歉没有在advanced中回答您的问题,但您确实应该重新考虑数据库的体系结构。使用标志来表示关系是一种不好的做法。您应该使用连接来连接两个表,并检查是否有r匹配以指示报表是否处于活动状态的ows。请查找联接、外键和SQL关系。我刚刚访问过:。我同意这是一种更好的方法。我这样做的原因是因为这是一个很小的任务,而且我不觉得需要创建多个表,因为它不会被大量使用。我不过,作为一个更大的公共应用程序的选项,我将对此进行描述。似乎OP正在使用
mysqli.*
--bind.\u param
if ($update->execute()) {
if ($update->affected_rows > 0)
{
$_SESSION['reported'] = 'reported';
header('Location: comments.php');
die();
}
else
{
// no row was modified / the ID does not exist.
}
}