答案是肯定的,
它将返回您输入的值。我喜欢这个问题,所以我实际上在具有不同配置的多台服务器上尝试了多次。
它会返回你插入的值,
mysql_insert_id() 返回 auto_increment 字段的值,不需要自动生成。
如果您尝试为您的密钥提供重复值,它也会返回 0,因为它不会被正确插入。
如果您想尝试,请使用以下查询
--EDIT .. 插入更多内容
<?php
$link = mysql_connect('localhost', 'root', 'techping');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('test');
mysql_query("INSERT INTO test (id, name) values (100,'kossu')");
printf("Last inserted record has id %d<br />", mysql_insert_id());
mysql_query("INSERT INTO test (id, name) values (125,'kossu')");
printf("Last inserted record has id %d<br />", mysql_insert_id());
mysql_query("INSERT INTO test (id, name) values (121,'kossu')");
printf("Last inserted record has id %d<br />", mysql_insert_id());
mysql_query("INSERT INTO test (id, name) values ('','kossu')");
printf("Last inserted record has id %d<br />", mysql_insert_id());
mysql_query("INSERT INTO test (id, name) values (250,'kossu')");
printf("Last inserted record has id %d<br />", mysql_insert_id());
?>
结果:
Last inserted record has id 100
Last inserted record has id 125
Last inserted record has id 121
Last inserted record has id 126
Last inserted record has id 250
查看当我让自动增量生成 121 之后的 id 时,它在最大 id 之后生成下一个值(126)(即;在这种情况下为 125),而不是 122