【发布时间】:2012-10-10 06:57:34
【问题描述】:
我在从数据库中删除行时遇到困难。
我在表单中有一个删除按钮,当单击它时会执行 DELETE FROM 查询,但它不起作用,我想知道我的理论是否完全错误(理论是有一个表单并提交按钮以将数据插入数据库可以工作,为什么不使用它来删除东西?这就是代码
$league_id = $_GET['id'];
$delete_entry = "<form action=\"".$_SERVER["REQUEST_URI"]."\ method=\"post\">
<input type=\"submit\" name=\"ooops\" value=\"Delete Entries\"></p>
</form>";
if ($_POST['ooops']) { //if the data is rubbish then delete and start again...
$delete_lge_sql = "DELETE FROM st_position WHERE league_id = '$league_id'";
$delete_lge_res = mysqli_query($statto, $delete_lge_sql)
or die(mysqli_error($statto));
}
当我单击删除条目时,页面重新加载并且 URL 看起来像这样
page.php?ooops=删除+条目
非常感谢您的帮助
【问题讨论】:
-
请显示您的 HTML 输出,而不是您的 PHP 源代码。
-
@Diodeus 除了 mysqli 的恐怖吗?
-
在你开始删除之前就出现了其他问题。附加了
?ooops=Delete+Entries的 URL 不符合您的代码显示的内容。您的代码将您的表单显示为 POST,因此 URL 不应更改。 -- 你确定 POST 正常通过吗?在if ($_POST['ooops'])之后运行 echo 以确保发布的数据正确通过。 -
是的,没有什么比设置自己的 SQL 注入更重要了。
-
您的代码中有错误
action=\"".$_SERVER["REQUEST_URI"]."\它应该是action=\"".$_SERVER["REQUEST_URI"]."\"(注意末尾的额外“)我的猜测是这会阻止方法=“POST”,使其成为从非 POST 表单获取。