我有一个基本的后台设置,其中有几个表列出了数据库内容,并提供了基于id删除行的选项。但是对于我拥有的每个产品,我需要有不同的PHP删除文件,在本例中为"product_01"
,"product_02"
等。
如何在查询字符串(href='delete_product_01.php?id=...
)中传递自定义ID,这样我就可以在删除php文件中使用条件语句,这样我只需要一个delete.php文件。
谢谢
back.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');
}
}
答案 0 :(得分:1)
您可以将产品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;
通过这样做,他不仅会删除一个产品,还会删除所有产品。 有关详细信息,请查看here。
mysql_*
函数已被弃用,不应使用。这有很多原因,请看this SO-Post
为您的每个产品指定一个表是非常糟糕的数据库设计。想象一下,您的公司(或任何在此销售的实例)会对其产品组合进行更改,删除或添加产品。您需要进行大量更改。如果你考虑修改你的概念(你真的应该!)this post将为你提供一个良好的起点。