【发布时间】:2018-07-24 13:39:55
【问题描述】:
我有一个表单,可以将唯一代码插入到通过 php 生成的表中。当只有一个时它可以工作,但是当我同时插入两个时,我得到了一个重复的错误。
if (!empty($_SESSION["cart_item"])) {
$orderreference = $_SESSION['ref'];
foreach ($_SESSION["cart_item"] as $item) {
if($item['isVoucher'] == 1){
$insertQuery = ("INSERT INTO `bookings_css_codes`
(`id`, `code`, `price`, `per`, `status`,
`expiry_date`, `usage`, `is_used`)
VALUES ('', '$randomsA', '$item[ProductPrice]', 'amount', 'T',
'$oneYearOn', 'single', '0');");
if (!$db->query($insertQuery)) {
die('Error: ' . $db->error);
}
}
【问题讨论】:
-
先检查是否存在,或者试试
INSERT ... ON DUPLICATE KEY UPDATE。很难说是否允许重复。 -
如果一个字段被索引为唯一,你根本不能插入两个具有相同值的记录。这就是首先将其定义为“独特”的原因。你到底想做什么?预期的结果是什么?如果您详细说明您的应用程序,我们可以查看您是否需要更新和规范您的数据库设计。
-
有什么问题?在这种情况下,错误是绝对正确的行为。
-
哪些列在此表上应该是唯一的?
-
好吧,根据您显示的这段代码,您不会在循环迭代之间更改
$randomsA中的值