防止重复行插入php / mysql

时间:2017-12-03 08:41:39

标签: php mysql

我正在尝试将多个记录从文本框插入到mysql表中。 如果我输入的记录超过2条,则会插入重复记录。 这是代码。 我做错了什么?

更多信息

表格信息

id (int) primary auto_increment
email (varchar)
imei (varchar)
date_ordered (datetime)
status(varchar)

由于它只是一个开头,我对更改表结构没有任何问题。

$email = $_SESSION['email'];
$now = time():
$status = "1";

$imeis = $_POST['imeis'];
$row = explode("\n", $imeis);

foreach ($row as $key => $imei)
{
    $imei = mysql_real_escape_string($imei);

    $query = "SELECT * FROM orders WHERE imei = '$imei'";
    $result = mysqli_query($link, $query);

    if (mysqli_num_rows($result) == 0)
    {
        $query1 = "INSERT IGNORE INTO orders (email, imei, date_ordered, status) VALUES ('$email', '$imei', '$now', '$status')";
        $result1  = mysqli_query($link, $query1) OR die("fml");

        if ($result1)
        {   
            echo "Added $imei<br>";
        }
    }

    else
    {
        echo "<B>$imei</B> already there<br>";
    }

}

1 个答案:

答案 0 :(得分:0)

您希望imei的每个值在表格中都是唯一的。它是猜测,但它看起来像你在做什么。

您可以通过将imei列定义为唯一来在SQL中执行此操作:即,通过在其上创建唯一索引。您当前的表格中有一个id作为唯一(主要)密钥。您可以轻松创建另一个。