PHP获取MySql新增记录ID值的方法
今天发现用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值的方法的更多相关文章
- PHP获取MySql新增记录ID值的3种方法
From: http://www.jb51.net/article/51473.htm 这篇文章主要介绍了PHP获取MySql新增记录ID值的3种方法,一般使用PHP自带函数mysql_insert_ ...
- C#中使用MySqlCommand执行插入语句后获取该数据主键id值的方法
.net中要连接mysql数据库,需要引用MySql.Data.dll文件,这文件在mysql官网上有下载. 接着通过MySqlCommand执行插入语句后想要获取该数据主键id值的方法如下: lon ...
- 获取多<a/>标签id值的点击事件
<li> <div class="pic"> <c:if test="${userId != null }"> <a ...
- 在MVC的cshtml视图页获取默认路由下的ID值的方法
<a href="/user/resume/index/11"> <span class="title bold">我的 @Reques ...
- MySQL获得指定数据表中auto_increment自增id值的方法及实例
http://kb.cnblogs.com/a/2357592/很多情况下,我们要提前用到当前某个表的auto_increment自增列id,可以通过执行sql语句来查询到这个id值. show ta ...
- 获取自增长的id值
单个: <insert id="create" parameterType="com.dto.Cou" useGeneratedKeys="tr ...
- 数据库插入数据返回当前自增主键ID值的方法
当我们插入一条数据的时候,我们很多时候都想立刻获取当前插入的主键值返回以做它用.我们通常的做法有如下几种: 1. 先 select max(id) +1 ,然后将+1后的值作为主键插入数据库: 2. ...
- selenium 获取input输入框中的值的方法
方法一:获取input的文本值 <input class="form-text-normal" id="txtName" name="Name& ...
- 获取input输入框中的值的方法
方法一:获取input的文本值 <input class="form-text-normal" id="txtName" name="Name& ...
随机推荐
- java的多线程总结
在java中要想实现多线程,有两种手段,一种是继续Thread类,另外一种是实现Runable接口. 对于直接继承Thread的类来说,代码大致框架是: class 类名 extends Thread ...
- JavaScript Boolean 对象
JavaScript Boolean 对象 Boolean 对象 Boolean 对象用于转换一个不是 Boolean 类型的值转换为 Boolean 类型值 (true 或者false). Bool ...
- java类型转换
//java类型转换public class Demo2 { public static void main(String[] args){ int num1 = 55; int num2 =77; ...
- php base64 原理
#include <stdio.h> #include <stdlib.h> #include <string.h> static const char base6 ...
- swift基本用法-数组array
数组简单用法 //------------------------------------------------------------------------------ // 1. 数组定义 / ...
- PAT 1029. 旧键盘(20)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在2行中分别给出应该输入的文字.以及实际 ...
- dotnetGen 系列终于开源了
https://github.com/2881099/dotnetGen .Net 3.0 + SqlServer 生成器 https://github.com/2881099/dotnetGen_s ...
- iptables案例手册
Linux防火墙Iptable如何设置只允许某个ip访问80端口,只允许特定ip访问某端口 iptables常用实例备查(更新中) 9个常用iptables配置实例 案例: http://www.cn ...
- 进程控制块(Process Control Block, PCB)
是为了管理进程设置的一个数据结构.是系统感知进程存在的唯一标志.通常包含如以下的信息:(1)进程标识符(唯一)(2)进程当前状态,通常同一状态的进程会被放到同一个队列:(3)进程的程序和数据地址(4) ...
- Spring Security笔记:解决CsrfFilter与Rest服务Post方式的矛盾
基于Spring Security+Spring MVC的web应用,为了防止跨站提交攻击,通常会配置csrf,即: <http ...> ... <csrf /> </ ...