避免在电子商务网站

时间:2016-02-14 11:06:30

标签: php mysql e-commerce

我正在使用PHP和MySQL创建一个基本的电子商务网站,我最近开始学习它。我有一个具体的问题。每当我添加两个同名产品时,都会将重复的产品添加到数据库中。无论如何都要避免相同而是增加数量的数字。

else{ 
        $product_image = addslashes(file_get_contents($_FILES['fileField']['tmp_name']));

        include_once("../scripts/connect.php");

        $sql = mysql_query("INSERT IGNORE INTO products(name, brand, category, sizes, description, price, quantity, product_image, date_added) VALUES('$product_name','$product_brand','$product_category','$product_sizes','$product_description','$product_price','$product_quantity','$product_image', now())");

        $id = mysql_insert_id();

        $msg = "Success!";

    }

3 个答案:

答案 0 :(得分:2)

在生产中使用上述代码不推荐,因为它容易受到sql注入攻击。尝试使用UNIQUE 来自数据库或使用的约束:

alter table products add unique index(name, brand, category, sizes, description, price, quantity, product_image, date_added);

<强>提示:

  • mysql_ 函数已弃用,已从php 7中删除。使用 mysqli _ 函数或PDO代替。
  • 使用预准备语句来避免sql注入。

答案 1 :(得分:0)

通过添加UNIQUE约束来改变表

我不知道你的桌面结构。添加一些逻辑来更新数量。

答案 2 :(得分:0)

不要将产品名称用于唯一字段。添加新的数据库字段:SKU - 它代表'库存单位'。

使用数据库的id字段很诱人,因为你可以将它设置为自动递增,但我强烈建议不要这样做。许多商家已经拥有自己的产品SKU,因此您希望能够输入SKU值以及其他产品详细信息。和商家SKU通常都有字母,所以制作db field varchar。

还建议您注册亚马逊卖家中心,并阅读他们如何做“父母”和“儿童”产品。它起初可能看起来过于复杂,但它会为你节省很多时间。