0
テキストボックスから複数のレコードをmysqlテーブルに挿入しようとしています。 2つ以上のレコードを入力すると、重複が挿入されます。 コードは次のとおりです。 私は何が間違っていますか?重複行の挿入を防止するphp/mysql
いくつかの詳細は
表情報
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>";
}
}
この部分はおそらくトリッキー 'OR die(" fml ")' –
@BarbarosÖzhanそれは本当に助けにはならない。 @OP最初の問題は 'INSERT IGNORE'です。それは言っているようです:私は重複がある場合は気にしない、それを無視して続行する。第二に、 'OR die(" fml ")はあなたを助けてくれていません。それは問題があるが、問題は何かではないことを伝えます。プロダクションが始まるまで、あなたは実際に有用な情報を得るために 'OR die(" Errormessage:%s \ n "、mysqli_error($ link))'を使うべきです。 – icecub
@icecubありがとう、私の役に立つ。 –