Php从多个表中删除

时间:2015-09-09 17:59:06

标签: php

我有一个基本的后台设置,其中有几个表列出了数据库内容,并提供了基于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');
    }
}

1 个答案:

答案 0 :(得分:1)

您可以将产品ID作为第二个get参数传递,例如

delete_product.php?id=4&product_id=1

在您的 delete.php 中,您可以通过某种方式操纵字符串,例如

"delete from product_".$_GET["product_id"]."_table where id='$id'"

但你真的应该 这样做!

这有多个原因,为什么这样的代码设计非常危险和坏:

SQL注入

可以轻松利用你的get参数来执行恶意sql代码。想象一下有人打电话

delete_product.php?id=4';DROP database;

通过这样做,他不仅会删除一个产品,还会删除所有产品。 有关详细信息,请查看here

mysql_ * functions

mysql_*函数已被弃用,不应使用。这有很多原因,请看this SO-Post

数据库设计

为您的每个产品指定一个表是非常糟糕的数据库设计。想象一下,您的公司(或任何在此销售的实例)会对其产品组合进行更改,删除或添加产品。您需要进行大量更改。如果你考虑修改你的概念(你真的应该!)this post将为你提供一个良好的起点。