【发布时间】:2013-02-11 06:10:41
【问题描述】:
我无法弄清楚为什么用 mysqli_insert_id() 返回的 id 与我预期的 id 不同。这是我的代码:
$query = "INSERT INTO payments_table (payment_type, payment_number, payment_cost, insertion_date) VALUES ( '$paymentType', '$paymentNumber', '$totalCost', NOW())";
$data = mysqli_query($dbc, $query);
$currentPayerID = mysqli_insert_id($dbc);
//DEBUG
echo 'current payerID is: ' . $currentPayerID;
由于当前有 2 行,我希望它在下一次执行后回显“当前 payerID 为 3”。但是,执行此代码后,它会回显以下内容: "当前的 payerID 是 21"
几个注意事项:
- 此“payments_table”表有一个名为“payer_id”的列,它是 主键并具有 AUTO_INCREMENT 属性。
- 我已经“截断”了这张表(我相信这与清空它是一样的)。
我在整个 stackoverflow 中进行了搜索,但有些答案没有 believe that what I'm finding is possible. 感谢任何慷慨的帮助!
【问题讨论】:
-
在你的表中检查最后生成的 id 是什么。
-
在 21 之后,在下一个插入它返回什么?请查看您的数据库表。什么存储在你的数据库中?请告诉。
-
嗨@YogeshSuthar,感谢您的回答。最后生成的 ID 是“3”。
-
你为什么期待
3?请更新您的问题以显示SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'my_database_name' AND TABLE_NAME = 'payments_table';的输出 -
嗨@ripa。我的表按常规升序存储 ID。最后存储的 id 是“3”。 mysqli_insert_id($dbc) 返回的值也是递增的,目前是“21”。
标签: php mysql auto-increment