[英]Php delete from multiple tables
我有一个基本的后台设置,其中有几个表列出了数据库内容,并提供了基于 id 删除行的选项。 但是对于我拥有的每个产品,我需要有不同的 PHP 删除文件,在本例中为"product_01"
、 "product_02"
等。
如何在查询字符串( href='delete_product_01.php?id=...
)中传递自定义 ID,以便我可以在删除 php 文件中使用条件语句,这样我只需要一个 delete.php 文件。
谢谢
返回.php.php
echo "<td class='deleteMe'><a class='delete_back' href='delete_product_01.php?id=".$record['id']."'>x</a></td>";
delete_product_01.php
include('config_delete.php');
if (isset($_GET['id'])) {
$id = $_GET['id'];
$query = mysql_query("DELETE FROM product_01_table WHERE id='$id'");
if ($query) {
header('location:back.php');
}
}
您可以将产品 ID 作为第二个 get 参数传递,例如
delete_product.php?id=4&product_id=1
在您的delete.php 中,您可以以某种方式操作您的字符串,例如
"delete from product_".$_GET["product_id"]."_table where id='$id'"
但你真的不应该这样做!
这里有多种原因,为什么这样的代码设计非常危险和糟糕:
人们可以很容易地利用您的 get 参数来执行邪恶的 sql 代码。 想象一下有人打电话
delete_product.php?id=4';DROP database;
通过这样做,他不仅会删除一个产品,还会删除所有内容。 在这里查看更多信息。
mysql_*
函数早已弃用,不应使用。 这有很多原因,看看这个SO-Post
为您的每个产品都指定一个表是非常糟糕的数据库设计。 想象一下您的公司(或这里销售的任何实例)对其产品组合进行更改,删除或添加产品。 您将需要进行大量更改。 如果你考虑修改你的概念(你真的应该!) 这篇文章将为你提供一个很好的起点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.