【发布时间】:2015-07-16 13:19:28
【问题描述】:
我有以下代码,如图所示,我有两个 INSERT 语句,它们插入两条记录 - 一条是当前日期,第二条是 -1 天。问题似乎出在 mysql_insert_id 上。我收到以下错误:
键“PRIMARY”的重复条目“28”
看起来两个语句的 ID 保持不变,并且添加了第一个“INSERT”也没有任何问题,问题在于尝试将第二条记录添加到同一个表中的那一行。这是脚本:
<?
include("session.php");
include("database_common.php");
if (isset($campaignName) & isset($campaignRedirect)) {
$dataTable = 'qrData_'.$_SESSION['displayName'];
$statTable = 'qrStat_'.$_SESSION['displayName'];
$query = mysql_query("INSERT INTO ".$dataTable." VALUES(".mysql_insert_id($connection).", '".$campaignRedirect."', '".$campaignName."');", $connection);
$statBlank1 = mysql_query("INSERT INTO ".$statTable." VALUES(".mysql_insert_id($connection).", CURDATE() - INTERVAL 1 DAY, 0, '".$campaignName."');", $connection);
$statBlank2 = mysql_query("INSERT INTO ".$statTable." VALUES(".mysql_insert_id($connection).", CURDATE(), 0, '".$campaignName."');", $connection);
if ($statBlank1) echo "stat 1 ok";
else echo mysql_error($connection);
if ($statBlank2) echo "stat 1 ok";
else echo mysql_error($connection);
if ($query) die("<center>Kampaň úspešne vytvorená<br><br><button onclick='parent.jQuery.fancybox.close();' name='submit' class='btn btn-primary'>Zatvoriť</button></center>");
else die("<center>Vyskytla sa chyba. Prosím, zopakujte Vašu požiadavku.</center>");
}
?>
这是一个表结构:
`id` int(11) NOT NULL AUTO_INCREMENT,
`date` date DEFAULT NULL, `usageCount` int(11) DEFAULT NULL,
`campaign` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`)
有什么建议吗?
【问题讨论】:
-
您正在混合使用
mysql_*和mysqli_*函数。那是行不通的。 -
首先,
mysqli_report用于mysqli_而不是mysql_函数。 -
qrStat_#的主键是什么 - 包括campaignName吗? -
从 mysql_insert_id 中删除参数..即只写mysql_insert_id..
-
@amdixon - “id”是 AI PK INT NOT NULL。