我有一个表从数据库表中选择结果,每个记录都有一个按钮回显(DeleteButton)。我想这个删除按钮删除选择的ROU(记录)。 我的代码如下所示,我已经缩小了问题,而'id'没有正确地进行POST / GET。我认为表单没有正确传递id。有人可以帮忙吗?
表格单元格中的表格:
echo "<td>"
.'
<form id="DeleteUser" action="DeleteUser.php" method"post">
<input type"text" name="id" value=" '.$row['user_id'].' " hidden />
<input type="submit" value="Delete">
</form>
'.
"</td>";
echo '</td>';
删除声明(DeleteUser)(DeleteUser.php):
<?php
$stmt = $con->prepare("DELETE FROM users WHERE user_id = ?");
$stmt->bind_param('sissi',$_GET['id']);
$stmt->execute();
$stmt->close();
?>
答案 0 :(得分:2)
$stmt->bind_param
语句中的第一个参数有5个不同的参数。你只传递一个。将其更改为:
$stmt = $con->prepare("DELETE FROM users WHERE user_id = ?");
$stmt->bind_param('i',$_GET['id']);
$stmt->execute();
$stmt->close();
您还必须确保$_GET['id']
也是int值。
在<input type"text" name="id" value=" '.$row['user_id'].' " hidden />
行上,删除值= =周围的空格以进行连接。所以你有value="'.$row['user_id'].'"
。
我还建议进行某种检查以确保 I 只是通过在其中输入不同的数字,随机或以其他方式进入并删除其他用户