首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP、mysql、主键对两条记录保持不变

问PHP、mysql、主键对两条记录保持不变
EN

Stack Overflow用户
提问于 2015-05-06 12:02:24
回答 2查看 100关注 0票数 1

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

“主键”的重复条目“28”

看起来两个语句的ID都是相同的,第一个"INSERT“也是在没有任何麻烦的情况下添加的,问题在试图将第二个记录添加到同一个表的行中。下面是剧本:

代码语言:javascript
复制
<?
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>"); 
}
?>

这里有一个表结构:

代码语言:javascript
复制
`id` int(11) NOT NULL AUTO_INCREMENT,  
`date` date DEFAULT NULL,  `usageCount` int(11) DEFAULT NULL,  
`campaign` varchar(45) DEFAULT NULL,  PRIMARY KEY (`id`)

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-06 15:59:51

好吧,伙计们,我让它有点阿米什人,但它有效。我直接从mysql获得最后一个id,并在下一个记录中将其增加1,如下所示:

代码语言:javascript
复制
$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是未定义的,但是表结构总是将空值更改为NULL,在这种情况下,这将是下一个增量值。希望有人会发现这有帮助。

票数 0
EN

Stack Overflow用户

发布于 2015-05-06 12:07:44

从mysqli_insert_id..i.e中删除参数。只有mysqli_insert_id是要写的。&回显要成为inserted..you的查询将在每次插入查询后得到inserted..use mysqli_free_result的值

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30076149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档