我有以下情况,我简化了表格以使内容易于阅读。
表结构:(注意:id
是auto-increment
)
列:id,text,rid
根据表单的输入,将2行插入到表中。
INSERT INTO tablename (id,text,rid)
VALUES (NULL, $usertext1, ??),(NULL, $usertext2, ??)
现在,我的问题在哪里?
我需要第一个??和第二个??是相同的int,并且两者都必须是第一次插入时的自动增量ID!我尝试了LAST_INSERT_ID(),但返回0。
结果我想拥有它:
1 | abctext | 1个
2 |拉拉拉| 1个
3 | fajoif | 2
4 | oijgoi | 2
任何帮助将不胜感激:)
谢谢。
最佳答案
您必须遵循以下步骤才能完成:
<?php
$i=0;
$firstInsertId=0;
foreach($post as $value){// suppose each $post index contains the one complete post data
$usertxt=$value['text'];
$sql="INSERT INTO tablename (id,text,rid)
VALUES (NULL, $usertxt,$firstInsertId)";
$mysqli->query(sql);
if($i == 0)//flag to get first inserted Id
$firstInsertId=$mysqli->insert_id;
$i++;
}
$sql="update tablename set rid=$firstInsertId where id=$firstInsertId";
$mysqli->query(sql);
关于php - MySQL重用自动增量ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29773235/