Php 更新查询无法正常工作
我正在用PHP和MySQL制作一个简单的IP禁止脚本,我正在创建编辑禁止页面,在那里他们可以修改原因和IP地址。我已经创建了一个更新查询,它将更新数据库中的记录。我有一个收集id的get请求,如下所示:Php 更新查询无法正常工作,php,mysql,sql,Php,Mysql,Sql,我正在用PHP和MySQL制作一个简单的IP禁止脚本,我正在创建编辑禁止页面,在那里他们可以修改原因和IP地址。我已经创建了一个更新查询,它将更新数据库中的记录。我有一个收集id的get请求,如下所示: edit\u banked\u ip.php?id=1 然后,我使用select语句收集信息并设置变量$id,然后在下面的更新查询中使用该变量: 这是我的疑问: <?php if ($_POST) { if ($_POST['ip'] != '' && $_POST[
edit\u banked\u 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';
}
}
}
}
?>
这就是我获取
$id
变量的方式,两个$u POST变量来自表单。URI上定义的变量是get变量
-您可以使用$\u GET['id'访问它
查询在我看来很好首先,您使用的是带有POST变量的GET方法
edit\u banked\u ip.php?id=1
,您还没有为id
定义变量,只在bind\u参数中定义,这还不够
我建议你不要那样做
您最好添加$id=$\u请求['id']代码>在你的$reason=$\u POST['reason']下
您是否检查了变量的值?您正在使用GET方法edit\u banked\u ip.php?id=1
和POST variables.SQL文本看起来像是有效的语法;我们没有足够的信息来检查语义(表名、列名、权限、触发器等)。我们没有看到为$id
变量分配任何值。对于调试,我建议您echo$id在bind_参数
之前执行code>。我建议您不要这样做。您最好添加$id=$\u请求['id']代码>在你的$reason=$\u POST['reason']下代码>你是用表格做的,对吗?@Fred ii-是的,它会给你35次代表,25次回答,10次投票:)
<?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()) {
}
}
?>