如何防止重复插入表中的相同数据?

时间:2015-07-09 11:17:01

标签: php

这就是我将数组传递给函数

的方法
$rate=$data["rate"];//this is an array like rate[10,20,30,60,70]
$car->rate = $rate;
$car->rentalRate();

在函数中,它接受数组并插入表

public function rentalRate()
    {

$rate = implode("','",$this->rate);
$sql = "INSERT INTO rental(day_1,day_3,day_7,day_15,day_30)VALUES('$rate')";
$stmt =connection::$pdo->prepare($sql);
        $stmt->execute();
        unset($rate);
    }

问题是,第二次它重复记录。我的意思是第一次插入时只插入一行。第二次插入时,插入两次相同的新记录。我第三次插入,插入三次..同样插入我插入的次数。如果我刷新,我就不会遇到这个问题。

什么可以跟踪我插入数据的时间,它可能是数组吗?还是ajax?

这是我通过ajax

提交表单的方式
$("#submit").on("click",function()
    {

          $("#add_car_form").submit(function(){           
            var data = {
              "action": "test"
            };
            data = $(this).serialize() + "&" + $.param(data);
            $.ajax({
              type: "POST",
              dataType: "json",
              url: "add_car_submit.php", //Relative or absolute path to response.php file
              data: data,
              success: function(data) {
                $(".the-return").html("<br />JSON: " + data["json"] );


              }
            });
            return false;
          });

        });

1 个答案:

答案 0 :(得分:1)

很难说没有看到你的完整代码,但是你可以这样做: Fist,使用浏览器上的开发工具,查看每次点击提交的请求数量。如果他们随着每次点击而成长,那就是你的JS错误。如果没有,那么尝试在php scritpt的入口点var_dump你的POST数据。如果数据没有重复,那么你的php部分就会出现问题。 (我打赌将使用JS,因为在AJAX请求中你创建了一个新的php进程实例,所以它无法跟踪你的提交)。