今天发现用mysql_insert_id()获取到的新增记录的id不正确,

虽然发现源代码的事务写的有问题,但是最根本的原因是,我插入数据的id类型是bigint型 

获取MySql新增记录ID值的方法有

1.使用语句

mysql_query("select max(id) from user",$link);

2.使用函数msyql_insert_id();

(1)mysql版

int mysql_insert_id ([ resource $link_identifier = NULL ] )

返回在最后一次执行了 INSERT 查询后,由 AUTO_INCREMENT 定义的字段的值。

返回上一步 INSERT 操作产生的 ID。如果上一查询没有产生 AUTO_INCREMENT 的 ID,则 mysql_insert_id() 返回 0

但是当id 为bigint 型时 就不在起作用了

(2)mysqli版

mixed mysqli_insert_id ( mysqli $link )

可根据结果的大小返回一个int或者string

3.使用查询

msyql_query("select last_insert_id()");

last_insert_id() 是mysql 函数 

该方法解决了 mysql_insert_id () 中遇到的 bigint 型问题 

last_insert_id() 返回的是 AUTO_INCREMENT 的 ID。

如果返回为0,查看表结构中,没有设置AUTO_INCREMENT ;或者是不是用了 insert delay 的功能(不会返回即时的返回id值)

4.PDO里的函数

public string PDO::lastInsertId ([ string $name = NULL ] )

返回最后插入行的ID或序列值

  

 

PHP获取MySql新增记录ID值的方法的更多相关文章

  1. PHP获取MySql新增记录ID值的3种方法

    From: http://www.jb51.net/article/51473.htm 这篇文章主要介绍了PHP获取MySql新增记录ID值的3种方法,一般使用PHP自带函数mysql_insert_ ...

  2. C#中使用MySqlCommand执行插入语句后获取该数据主键id值的方法

    .net中要连接mysql数据库,需要引用MySql.Data.dll文件,这文件在mysql官网上有下载. 接着通过MySqlCommand执行插入语句后想要获取该数据主键id值的方法如下: lon ...

  3. 获取多<a/>标签id值的点击事件

    <li> <div class="pic"> <c:if test="${userId != null }"> <a ...

  4. 在MVC的cshtml视图页获取默认路由下的ID值的方法

    <a href="/user/resume/index/11"> <span class="title bold">我的 @Reques ...

  5. MySQL获得指定数据表中auto_increment自增id值的方法及实例

    http://kb.cnblogs.com/a/2357592/很多情况下,我们要提前用到当前某个表的auto_increment自增列id,可以通过执行sql语句来查询到这个id值. show ta ...

  6. 获取自增长的id值

    单个: <insert id="create" parameterType="com.dto.Cou" useGeneratedKeys="tr ...

  7. 数据库插入数据返回当前自增主键ID值的方法

    当我们插入一条数据的时候,我们很多时候都想立刻获取当前插入的主键值返回以做它用.我们通常的做法有如下几种: 1. 先 select max(id) +1 ,然后将+1后的值作为主键插入数据库: 2. ...

  8. selenium 获取input输入框中的值的方法

    方法一:获取input的文本值 <input class="form-text-normal" id="txtName" name="Name& ...

  9. 获取input输入框中的值的方法

    方法一:获取input的文本值 <input class="form-text-normal" id="txtName" name="Name& ...

随机推荐

  1. [No000019]不想背单词?看看游戏能否帮你

  2. androidSDK无法更新的解决方法之一

    方法来源于: http://www.eoeandroid.com/thread-281075-1-1.html 试试这个,能解决国内访问Google服务器的困难启动 Android SDK Manag ...

  3. JavaScript String 对象

    JavaScript String 对象 String 对象 String 对象用于处理文本(字符串). String 对象创建方法: new String(). 语法 var txt = new S ...

  4. Javascript中document.execCommand()的用法

    document.execCommand()方法处理Html数据时常用语法格式如下:document.execCommand(sCommand[,交互方式, 动态参数]) 其中:sCommand为指令 ...

  5. ASP.NET整理:Cookie,Application,Session,页面生命周期

    一.设置Cookie的2种方式 1.    Repsonse.Cookie[“名”] = 值; 2.    HttpCookie hcCookie = new HttpCookie(“名”,值); h ...

  6. codevs2693 上学路线(施工)

    难度等级:黄金 2693 上学路线(施工) 题目描述 Description 问题描述 你所在的城市街道好像一个棋盘,有a条南北方向的街道和b条东西方向的街道. 南北方向a条街道从西到东依次编号为1到 ...

  7. 数据库Mark.2

    select count(*) as count,DATE_SUB('2016-10-04',INTERVAL regDay DAY) from result_1005 group by DATE_S ...

  8. Block Chain, a protocol view

    我做了个区块链的文档,给自己扫盲用的,有兴趣的可以看下,主要是自己画示意图比较好理解,示意图之后的专题部分,内容直接取自参考链接.网上的资料都是谈区块链有什么性质.有什么能力.有什么应用之类的,我主要 ...

  9. FineUI大版本升级,外置ExtJS库、去AXD化、表格合计行、表格可编辑单元格的增删改、顶部菜单框架

    这是一篇很长的文章,在开始正文之前,请允许我代表目前排名前 20 中唯一的 .Net 开源软件 FineUI 拉下选票: 投票地址: https://code.csdn.net/2013OSSurve ...

  10. UWP 快速的Master/Detail实现

    最近在写快报(还没有写完)的过程中,一开始就遇到了这个Master/Detail如何实现的问题. 微软给出Demo并不符合要求,搜索后找到了今日头条开发者写的一篇 :实现Master/Detail布局 ...