Php Select语句未正确检查num_行
我正在制作一个简单的PHP和MySQL IP禁止脚本,我正在检查IP地址是否已经被禁止。我创建了一个名为Php Select语句未正确检查num_行,php,mysql,sql,Php,Mysql,Sql,我正在制作一个简单的PHP和MySQL IP禁止脚本,我正在检查IP地址是否已经被禁止。我创建了一个名为test.php的测试文件,其内容如下: <?php require_once('../includes/db_connect.php'); session_start(); $ip = '1.1.1'; $stmt = $db->prepare("SELECT `ip`, `reason` FROM `banned_ips` WHERE `ip` = ?"); $stmt-&g
test.php
的测试文件,其内容如下:
<?php
require_once('../includes/db_connect.php');
session_start();
$ip = '1.1.1';
$stmt = $db->prepare("SELECT `ip`, `reason` FROM `banned_ips` WHERE `ip` = ?");
$stmt->bind_param('s', $ip);
$stmt->execute();
if ($stmt->num_rows > 0) {
header('Location: banned.php');
}
$stmt->close();
?>
<html>
<h1>This is a test page</h1>
</html>
这是一个测试页面
如您所见,我已将$ip
变量设置为1.1.1
,这是数据库中确实存在的测试值,因此应被视为禁用,但它不将其视为禁用,因此不会重定向到禁用页面
在检查数据库中是否已经存在IP地址时,我是否做错了什么
我的数据库结构如下:
表:禁止的IP
第1列:id
第2列:ip
第3栏:原因
编辑:很抱歉输入错误,我确实有一个IP列,它是一个varchar。这可能会使它工作:(如果您在db中有一个IP列作为varchar)
这是一个测试页面
这可能会让它正常工作:(如果您在数据库中将ip列作为varchar)
这是一个测试页面
这可能会让它正常工作:(如果您在数据库中将ip列作为varchar)
这是一个测试页面
这可能会让它正常工作:(如果您在数据库中将ip列作为varchar)
这是一个测试页面
“我的数据库结构如下:表:禁止\u ips第1列:id
第2列:reason
”---愚蠢的问题提醒=>您确实有一个名为ip
的专栏,对吗?您的问题中似乎有一个关于column 1:id
的打字错误,应该读作column 1:ip
——您的答案如下。“我的数据库结构如下:表:禁止\u ips第1列:id
2列:reason
“---愚蠢的问题提醒=>您确实有一个名为ip
的专栏,对吗?您的问题中似乎有一个关于column 1:id
的打字错误,应该读作column 1:ip
——您的答案如下。“我的数据库结构如下:表:禁止\u ips第1列:id
2列:reason
“---愚蠢的问题提醒=>您确实有一个名为ip
的专栏,对吗?您的问题中似乎有一个关于column 1:id
的打字错误,应该读作column 1:ip
——您的答案如下。“我的数据库结构如下:表:禁止\u ips第1列:id
2列:reason
“---愚蠢的问题提醒=>您确实有一个名为ip
的专栏,对吗?您的问题中似乎有一个关于column 1:id
的拼写错误,应该读作column 1:ip
---您的答案如下。是的,这是答案+1--一个额外的解释对这篇文章是有好处的。谢谢你,这篇文章起作用了,很抱歉,是我的错。是的,这就是答案+1--一个额外的解释对这篇文章是有好处的。谢谢你,这篇文章起作用了,很抱歉,是我的错。是的,这就是答案+1--一个额外的解释对这篇文章是有好处的。谢谢你,这篇文章起作用了,很抱歉,是我的错。是的,这就是答案+1--一个额外的解释对这篇文章是有益的。谢谢你,这篇文章成功了,对不起,是我的错。
<?php
require_once('../includes/db_connect.php');
session_start();
$ip = '1.1.1';
$stmt = $db->prepare("SELECT `ip`, `reason` FROM `banned_ips` WHERE `ip` = ?");
$stmt->bind_param('s', $ip);
$stmt->execute();
//Transfers a result set from the last query
$stmt->store_result();
if ($stmt->num_rows > 0) {
header('Location: banned.php');
}
$stmt->close();
?>
<html>
<h1>This is a test page</h1>
</html>