-3

我知道它已经贬值了,而且通常不是好的做法。但是这个命令:mysql_insert_id出于某种原因正在返回这个奇怪的数字。它以前从未做过。

我在任何地方都找不到对这个号码的引用。例如,我刚刚在id:2 中插入了一条记录,它给了我数字 1587。

这是从哪里得到的?

我不得不求助于使用我刚刚从中提取的确切值对数据库进行反向查询以获取 ID。但这没有任何意义。

编辑 对不起,如果我没有解释这一点;但它只是一个标准的插入语句:

INSERT INTO `job` (`subject`,`deadline`,`status`) VALUES ('$title','3454354','CREATED');

并且自动增量在称为“id”的 PK 上。

该字段id导致设置为2,但mysql_insert_id返回奇数。我运行了一个表状态,它显示 auto_increment 符合预期。这次我没有插入任何其他内容。在我插入它之后,我会直接查询最后插入的 ID。

4

2 回答 2

0

AUTOINCREMENT在插入之前和之后检查 col

SHOW TABLE STATUS FROM `db_name` WHERE NAME='col_name';

编辑:如果您的起始编号很大,您可以在“创建表”中看到。

也许你在这张桌子上有触发器?

于 2013-07-19T12:03:57.367 回答
0

手册说 mysql_insert_id 返回:

上一个查询成功时为 AUTO_INCREMENT 列生成的 ID,如果上一个查询没有生成 AUTO_INCREMENT 值,则为 0,如果没有建立 MySQL 连接,则为 FALSE。

你有自动增量吗?

于 2013-07-19T12:06:18.397 回答