PHP,mysql,两条记录主键不变

PHP, mysql, primary key remains unchanged for two records

我有以下代码,如所见,我有两个 INSERT 语句,它们插入两条记录 - 一条是当前日期,第二条是 -1 天。问题似乎出在 mysql_insert_id 上。我收到以下错误:

Duplicate entry '28' for key 'PRIMARY'

看起来两个语句的 ID 都保持不变,而且添加第一个 "INSERT" 也没有任何问题,问题出在试图将第二个记录添加到同一个 table.这是脚本:

<?
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>"); 
}
?>

这是一个 table 结构:

`id` int(11) NOT NULL AUTO_INCREMENT,  
`date` date DEFAULT NULL,  `usageCount` int(11) DEFAULT NULL,  
`campaign` varchar(45) DEFAULT NULL,  PRIMARY KEY (`id`)

有什么建议吗?

mysqli_insert_id 中删除参数...即只写 mysqli_insert_id..& 回显要插入的查询..你将得到插入的值..在每次插入查询后使用 mysqli_free_result

好的,伙计们,我做的有点奇怪,但它确实有效。我直接从 mysql 获取最后一个 ID,并在下一条记录中将其增加 1,如下所示:

$statBlank1 = mysql_query("INSERT INTO ".$statTable." VALUES(ID, CURDATE() - INTERVAL 1 DAY, 0, '".$campaignName."');");
$statBlank2 = mysql_query("INSERT INTO ".$statTable." VALUES(LAST_INSERT_ID() + 1, CURDATE(), 0, '".$campaignName."');", $connection);

第一个查询中的 ID 未定义,但是 table 结构总是将 NULL 值更改为 NOT NULL,在这种情况下,这将是下一个递增的值。希望有人会觉得这有帮助。