gpt4 book ai didi

php - Select 语句未正确检查 num_rows

转载 作者:太空宇宙 更新时间:2023-11-03 12:12:49 27 4
gpt4 key购买 nike

我正在制作一个简单的 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->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,这是数据库中确实存在的测试值,因此应被视为banned,但是它不认为它被禁止,因此不会重定向到被禁止的页面。

我在检查数据库中是否已存在 IP 地址时是否做错了什么?

我的数据库结构如下:

表:banned_ips第 1 列:id第 2 列:ip第 3 列:原因

编辑:抱歉打错了,我有一个 IP 列,它是一个 varchar。

最佳答案

这可能会使它起作用:(如果您将 ip 列作为数据库中的 varchar)

<?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>

关于php - Select 语句未正确检查 num_rows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23497144/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com