这是我的Mysql查询。在我的表Id中是Auto-Increment类型。
$sql ="INSERT INTO product_detail (master_detail_id,Product_code,Product_label)
values
('8330','TOTAL','products'),('8330','010290','demo'),('8330','010639','Live demo'),
('8330','020900','demo fat'),('8330','030344','demos')";
$insertDetails = mysql_query( $sql);
echo "last insert id-->".mysql_insert_id();我得到的是最后一次插入id->1,但我应该得到5。我不知道为什么会发生这种事?
表结构
id bigint(250) No None AUTO_INCREMENT
Product_code varchar(20) latin1_swedish_ci No
Product_label varchar(500) latin1_swedish_ci No
master_detail_id bigint(250) No None 发布于 2013-09-17 11:14:42
对于多行INSERT语句,mysql_insert_id()返回第一个自动生成的AUTO_INCREMENT值;如果没有生成此类值,则返回插入到AUTO_INCREMENT列中的最后一个显式值。
发布于 2013-09-17 11:12:52
如果将id列指定为mysql_insert_id(),则将返回id。您应该注意到,如果id列是BIGINT类型,那么函数返回的结果可能是错误的(这也是php:http://php.net/manual/en/function.mysql-insert-id.php中指定的)。
发布于 2013-09-17 11:15:02
对于多插入mysql_insert_id()返回第一个插入,您需要执行5个单独的查询,在末尾运行mysql_insert_id(),或者执行
SELECT MAX(master_detail_id) FROM product_detail or
SELECT master_detail_id FROM product_detail
ORDER BY master_detail_id DESC LIMIT 1https://stackoverflow.com/questions/18848279
复制相似问题