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

2015-01-24信息快讯网

这篇文章主要介绍了PHP获取MySql新增记录ID值的3种方法,一般使用PHP自带函数mysql_insert_id() 即可实现,另2种方法权作特殊情况下使用,需要的朋友可以参考下

一、使用语句:
 

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

使用此方法得到的是 id最大的值,确为最后一个值,但当多链接线程时,这个最大的id并不一定是我们插入数据的自增id值,因此不适用于多线程。

二,使用函数:msyql_insert_id();

在PHP中,经常需要把插入数据库中的id值取出来,而正好有这么一个函数:
<?php
//执行插入数据库的语句
//……
$getID=mysql_insert_id();//$getID即为最后一条记录的ID

//此函数的使用条件:
//1.假设字段名称为recordID
//2.字段属性须设为:auto_increment
//3.添加数据后使用
//$newID = mysql_insert_id();
//得到ID值
 ?>

PHP 函数 mysql_insert_id() 是返回在最后一次执行了 INSERT 查询后,由 AUTO_INCREMENT 定义的字段的值。

当系统执行完INSERT后,再执行SELECT时,可能已经被分发到了不同的后端服务器,如果使用php编程,此时应该通过 mysql_insert_id()来得到最新插入的id,每次INSERT结束后,其实对应的autoincrement值就已经计算好返回给PHP 了,你无需再发出一次独立的查询,直接用mysql_insert_id()即可。
当插入一条语句时,它自动返回最后的id(mysql自增值)。
并且此函数仅对当前链接有用,即它是多用户安全型的。
建议使用此函数;
问题:当id 为bigint 型时 就不在起作用了。

三、使用查询
 

msyql_query("select last_insert_id()");

last_insert_id() 是mysql 一个函数 也是 对当前链接起效
此用法 解决了 mysql_insert_id () 中遇到的 bigint 型问题
总结:
推荐使用方法二,特殊情况下,可以考虑方法三。

PHP程序员常见的40个陋习,你中了几个?
php目录遍历函数opendir用法实例
php中base_convert()进制数字转换函数实例
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
php中ob_get_length缓冲与获取缓冲长度实例
php中addslashes函数与sql防注入
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
php中常见的sql攻击正则表达式汇总
PHP操作MySQL事务实例
PHP通过插入mysql数据来实现多机互锁实例
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
PHP之uniqid()函数用法
ThinkPHP写数组插入与获取最新插入数据ID实例
PHP与MYSQL中UTF8 中文排序示例代码
PHP-Java-Bridge使用笔记
完善CodeIgniter在IDE中代码提示功能的方法
PHP获取windows登录用户名的方法
PHP判断表单复选框选中状态完整例子
PHP网页游戏学习之Xnova(ogame)源码解读(十)
PHP网页游戏学习之Xnova(ogame)源码解读(九)
PHP网页游戏学习之Xnova(ogame)源码解读(八)
PHP网页游戏学习之Xnova(ogame)源码解读(七)
ThinkPHP结合ajax、Mysql实现的客户端通信功能代码示例
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
windows下配置apache+php+mysql时出现问题的处理方法
ThinkPHP的Widget扩展实例
ThinkPHP3.1的Widget新用法
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
mac下Apache + MySql + PHP搭建网站开发环境
教你如何快捷的使用cmd访问mysql小技巧
PHP+Mysql+Ajax+JS实现省市区三级联动
PHP获取栏目的所有子级和孙级栏目的ID号示例
php GUID生成函数和类
©2014-2024 dbsqp.com