我有以下情况,我简化了表格以使内容易于阅读。

表结构:(注意:idauto-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/

10-13 02:41