gpt4 book ai didi

php - 更新查询无法正常工作

转载 作者:行者123 更新时间:2023-11-29 08:02:15 25 4
gpt4 key购买 nike

我正在 PHP 和 MySQL 中制作一个简单的 IP 禁止脚本,我正处于创建编辑禁止页面的阶段,他们可以在其中修改原因和 IP 地址。我创建了一个更新查询,它将更新数据库中的该记录。我有一个获取 id 的请求,如下所示:

edit_banned_ip.php?id=1

然后,我使用 select 语句来收集信息并设置变量 $id,然后在下面的更新查询中使用该变量:

这是我的查询:

<?php

if ($_POST) {
if ($_POST['ip'] != '' && $_POST['reason'] != '') {
$ip = $_POST['ip'];
$reason = $_POST['reason'];

// run update query
$update = $db->prepare("UPDATE `banned_ips` SET `ip` = ?, `reason` = ? WHERE `id` = ?");
$update->bind_param('ssi', $ip, $reason, $id);

if ($update->execute()) {
if ($update->affected_rows > 0) {
$_SESSION['update_success'] = 'Success';
}
}
}
}

?>

老实说,我对自己做错了什么感到困惑,所以如果有人能看到此查询的问题,那么我会很开心。

我遇到的问题是查询确实执行,但没有行受到影响,并且记录不会更新。

编辑:

感谢那些回答的人,我回显了 $ip 变量,它是正确的。

在上述查询下面,我有以下代码(用于获取数据):

<?php
if ($_GET) {
if (isset($_GET['id'])) {
$id = $_GET['id'];
if ($stmt = $db->prepare("SELECT ip, reason FROM banned_ips WHERE id = ?")) {

$stmt->bind_param("i", $id);
$stmt->execute();
$stmt->bind_result($ip, $reason);

while ($stmt->fetch()) {
}
}
?>

这就是我从表单中获取 $id 变量和两个 $_POST 变量的方法。

最佳答案

首先,您使用的是 GET 方法 edit_banned_ip.php?id=1使用 POST 变量并且您尚未定义 id 的变量然而,仅限于您的bind_param但这还不够。

我建议你不要这样做。

您最好添加$id=$_REQUEST['id'];在您的$reason = $_POST['reason'];

关于php - 更新查询无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23501761/

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