Home > Backend Development > PHP Tutorial > mysql_insert_id的疑义

mysql_insert_id的疑义

WBOY
Release: 2016-06-13 12:00:27
Original
869 people have browsed it

mysql_insert_id的疑问

<br />CREATE TABLE `create_id` (<br />  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '生成自增user_id',<br />  `v` varchar(1) NOT NULL COMMENT '用于生成新的id',<br />  PRIMARY KEY (`id`),<br />  UNIQUE KEY `v` (`v`)<br />) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ;<br /><br />replace into `create_id` set `v`='1' ;<br />
Copy after login

执行这条sql之后,用mysql_insert_id无法获得insert id。有什么方法/函数能获得replace into产生的新id?
------解决方案--------------------
replace 指令可能产生,也可能不产生新的 id
所以获取不到是正常的

那么 有什么方法/函数能获得replace into产生的新id?
答案是没有,但你可以指定 id
------解决方案--------------------
select LAST_INSERT_ID() as `id` from `create_id`;

select id from `create_id` order by id desc limit 1
不是一樣嗎?
------解决方案--------------------

引用:
select LAST_INSERT_ID() as `id` from `create_id`;

select id from `create_id` order by id desc limit 1
不是一樣嗎?


并发的情况下, order by id desc 可能就是别人的id了
LAST_INSERT_ID() 是在某个数据库连接的范围内吗?
------解决方案--------------------
原来这样也可以获id,学习了
------解决方案--------------------
select id from tb  order by id desc limit 1
------解决方案--------------------
引用:
select id from tb  order by id desc limit 1
这个只可以获取库里面的id吧?楼主是在插入数据的时候,要获取当前id。
我用TP写的:        
        $Form=M('member');
        $sql="show table status where Name='fht_member'";
        $rs=$Form->query($sql);
        $Mid=$rs[0]['Auto_increment'];
返回记录集有个['Auto_increment'],就是当前插入的自增id
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template