如何通过 php 从 mysql 中删除一行


How to delete a row from mysql via php

复习 php 并开发一个简单的程序,我遇到了一个问题。我似乎无法弄清楚如何删除 mysql 行。我将在粘贴文档中链接我的脚本,以便您可以看到我是如何设置它的。

我不熟悉AJAX或Javascript,所以我只是把删除按钮变成了一个表单。如果我能让它工作,我想暂时保持这样。

这里的馅饼

更改:

mysql_query("DELETE FROM name WHERE name=.'$del'.");

自:

mysql_query("DELETE FROM name WHERE name='".$_POST['$del']."'");

因为:
1.您应该摆脱.在查询中,点用于字符串串联。
2. 你想使用 $_POST['$del'] 的值 - 参数$del未设置

更新:

  1. <input type="hidden" name="del" />更改为:<input type="hidden" name="del" value="theNameYouWantToDelete"/>
  2. 您为所有表单元素指定相同的名称(name="del") - 不建议这样做! 最好为每个对象设置不同的名称。
  3. 请不要使用mysql_* - 它已被弃用并且容易受到SQL注入的影响,请使用PDO或MySQLi代替。

在第 30 行,您有两个名为 del 的输入,第二个不包含要删除的名称

echo '<form id="del" method="post"><input type="submit" name="del" value="X" /><input type="hidden" name="del" /></form>';

需要更改为类似的东西 -

echo '<form id="del" method="post"><input type="submit" name="del_submit" value="X" /><input type="hidden" name="del" value="'.$del.'" /></form>';

然后将第 12-13 行更改为

if (isset($_POST['del_submit'])) {
mysql_query("DELETE FROM name WHERE name='".$_POST['del']."'");

请注意,mysql_函数已折旧,并且您需要注入 sql 内容。

您没有正确连接$del变量。您可以简单地使用:

mysql_query("DELETE FROM name WHERE name='$del'");

此外,您需要在DELETE查询之前设置$del。在您尝试使用它之前尚未声明该变量,因此它将null