MYSQL 小技巧 -- LAST_INSERT_ID

 更新时间:2009年11月24日 21:43:41   作者:  
用PHP调用mysql , 内置的LAST_INSERT_ID() 这个函数可能没有什么人用,用的最多的还是 mysql_insert_id()
其实,这两个是有区别的,LAST_INSERT_ID() 能返回 bigint 值的id。而,mysql_insert_id 返回的是 int 。如果你
的id 是 unsigned int,或者 bigint 的 。那么,可能是返回的是错误的。而要用 LAST_INSERT_ID() 代替。

还有些朋友,返回的都是 0,不知道怎么回事,其实 LAST_INSERT_ID() 返回的是 AUTO_INCREMENT 的 ID。
如果,表结构中,没有设置,AUTO_INCREMENT 那么也无法返回。

还有些人,还是返回为 0. 那么你就要检查一下,是不是 用了 insert delay 的功能。这种情况下,是不会返回即时的返回id值的。

很多人喜欢用 select max(id) ... 来替换这个last_insert_id, 实际上, select max(id) 是非线程安全的,很有可能,
其他线程插入了新的数据,你就查不到你上次插入的 ID 了。而last_insert_id 是 和 一个mysql connect 相对应的,也就是
和你的当前线程相对应的,不会受其他线程的干扰。如果你的数据库发生了一些奇怪的错误,比如,本来是要更新A 数据的信息的,
结果 B 数据被更新了,而且是有时候正确,有时候不正确,人多的时候会非常的不正确。就要看看是不是 用了 select max(id)

相关文章

  • php数据入库前清理 注意php intval与mysql的int取值范围不同

    php数据入库前清理 注意php intval与mysql的int取值范围不同

    php数据入库前清理 注意php intval与mysql的int取值范围不同,需要的朋友可以参考下。
    2010-12-12
  • PHP使用PDO实现mysql防注入功能详解

    PHP使用PDO实现mysql防注入功能详解

    这篇文章主要介绍了PHP使用PDO实现mysql防注入功能,结合实例形式详细分析了PHP使用pdo操作mysql防注入原理、实现方法及相关注意事项,需要的朋友可以参考下
    2019-12-12
  • PHP完全二叉树定义与实现方法示例

    PHP完全二叉树定义与实现方法示例

    这篇文章主要介绍了PHP完全二叉树定义与实现方法,简单描述了完全二叉树的概念并结合实例形式给出了完全二叉树的定义、节点查找、添加、设置、打印等相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • php+ajax实现无刷新的新闻留言系统

    php+ajax实现无刷新的新闻留言系统

    这篇文章主要介绍了一款基于php+ajax无刷新的新闻留言系统实现过程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-10-10
  • 自己写了一个php检测文件编码的函数

    自己写了一个php检测文件编码的函数

    关于文件编码的检测,百度一下一大把都是,但是确实没有能用的,下面是自己写了一个检测函数,希望对大家有所帮助
    2014-04-04
  • PHPMailer安装方法及简单实例

    PHPMailer安装方法及简单实例

    PHPMailer是一个用PHP写的用于邮件发送的类,有点像Jmail,相信很多新手和我一样,开始很茫然,不知道怎么安装,查找了一下,发现这方面的资料真的少之又少,一个文章被转载千百次,一搜索全是同一个内容,真不知道说什么好,其实打开安装里的readme就一目了然了,闲话少说,安装其实很简单。
    2008-11-11
  • php字符比较函数similar_text、strnatcmp与strcasecmp用法分析

    php字符比较函数similar_text、strnatcmp与strcasecmp用法分析

    这篇文章主要介绍了php字符比较函数similar_text、strnatcmp与strcasecmp用法,以实例形式详细分析了这三个字符串比较函数的具体用法,非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • MySQL的FIND_IN_SET函数使用方法分享

    MySQL的FIND_IN_SET函数使用方法分享

    有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 …..11,12,13等等
    2012-03-03
  • 从MySQL数据库表中取出随机数据的代码

    从MySQL数据库表中取出随机数据的代码

    这个例子是用于一个简单的应用开发了,意思就是把现在表中的所有数据我们随机读出来一次之后再进行随机保存到另一个表,从而达到了记录随机的功能
    2007-09-09
  • mac下多个php版本快速切换的方法

    mac下多个php版本快速切换的方法

    这篇文章主要给大家介绍了在mac下多个php版本快速切换的方法,本文先是给大家分享了使用brew安装php多版本的方法,而后才介绍了快速切换的实现方法,感兴趣的朋友们下面来一起看看吧。
    2016-10-10

最新评论