复习 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
未设置
更新:
- 将
<input type="hidden" name="del" />
更改为:<input type="hidden" name="del" value="theNameYouWantToDelete"/>
- 您为所有表单元素指定相同的名称(name="del") - 不建议这样做! 最好为每个对象设置不同的名称。
- 请不要使用
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
。