PHP获取MySql新增记录ID值的3种方法
一、使用语句:
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 型问题
总结:
推荐使用方法二,特殊情况下,可以考虑方法三。
相关推荐
-
THINKPHP在添加数据的时候获取主键id的值方法
在使用ThinkPHP新增数据后可以很方便的获取自动增长型的主键值. $Model = D('Blog'); $data['name'] = 'test'; $data['title'] = '测试标题'; $data['content'] = '测试内容'; $result = $Model->add($data); if ($result){ $id = $result; // 获取数据库写入数据的主键 }else{ exit($Model->getError()); } 如果你的数据表主
-
PHP获取MySql新增记录ID值的3种方法
一.使用语句: 复制代码 代码如下: mysql_query("select max(id) from t1",$link); 使用此方法得到的是 id最大的值,确为最后一个值,但当多链接线程时,这个最大的id并不一定是我们插入数据的自增id值,因此不适用于多线程. 二,使用函数:msyql_insert_id(); 在PHP中,经常需要把插入数据库中的id值取出来,而正好有这么一个函数: 复制代码 代码如下: <?php //执行插入数据库的语句 //-- $getID=mys
-
ASP获取新增记录ID值的方法
ASP+Access2000 1.要获取的ID值字段属性必须设为:自动编号(我们假设字段名为recordID) 2.添加记录格式:Rs.Open table,Cn,1,3 注意模式为:1,3 3.newID = rs.Fields("recordID") 4.newID为刚添加的记录的ID值 ASP+SQL Server 2000 1.要获取的ID值字段属性必须设为:自动编号(我们假设字段名为recordID) 2.添加记录代码模式: 复制代码 代码如下: Cn.Execute&quo
-
Java获取最后插入MySQL记录的自增ID值的3种方法
方法一: 复制代码 代码如下: String sql = "INSERT INTO users (username,password,email) VALUES (?,?,?);";PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);//传入参数:Statement.RETURN_GENERATED_KEYSpstmt.setSt
-
.NET中获取Access新增记录Id怪现象解决方法
复制代码 代码如下: using System; using System.Data.OleDb; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine(GetUserId("dnawo")); Console.ReadKey(); } /// <summary> /// 获取用户Id /// </summary> /
-
java编程调用存储过程中得到新增记录id号的实现方法
本文实例讲述了java编程调用存储过程中得到新增记录id号的实现方法.分享给大家供大家参考,具体如下: 关于ms sql server2000的存储过程,主要作用是在表test中插入一条记录,然后得到新增加记录的id号. test表三个字段: ID:自动增长 yhm:用户名 字符串类型 kl: 密码 字符串类型 那么在java程序中如何调用这个存储过程才能实现,得到新增加记录的id号 存储过程如下: CREATE PROCEDURE yh_insert @yhm varchar(50),@k
-
js获取标签元素data-*属性值的4种方法
目录 方式一:dataset 方式二: getAttribute/setAttribute/removeAttribute 方法三:jQuery.attr 方法四:jQuery.data 前言: 标签上有两个属性data-id 和 data-user-name, 需要通过js去获取 <style> #user::before { content: attr(data-id); } #user::after { content: attr(data-user-name); }
-
layui从数据库中获取复选框的值并默认选中方法
如下: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" type="text/css" href="../../../static/js/css/layui.css" rel=
-
PHP获取数组长度或某个值出现次数的方法
本文实例讲述了PHP获取数组长度或某个值出现次数的方法.分享给大家供大家参考.具体分析如下: count():对数组中的元素个数进行统计; 例如: $arr = Array('0','1','2','3','4'); echo count($arr); // 输出 5 sizeof()和count()具有同样的用途,这两个函数都可以返回数组元素个数.可以得到一个常规标量变量中的元素个数,如果传递给这个函数的数组是一个空数组,或者是一个没有经过设定的变量,返回的数组元素个数就是0; array_c
-
原生js获取left值和top值的三种方法
在用js做动态效果时,通常需要获取元素绝对定位中的left和top属性值.比如做一个碰撞广告,就要不停的获取元素的top和left属性值. 需要注意的事:取值的元素必须要设置position:absolute绝对定位属性,才能取的到left值. 第一种方法,比较简单,就是直接通过obj.style.left和obj.style.top,但是有局限性,这种获取的方法只能获取到行内样式的left和top的属性值,不能获取到style标签和link 外部引用的left和top属性值. 第二种方法 只读
-
详解pandas获取Dataframe元素值的几种方法
可以通过遍历的方法: pandas按行按列遍历Dataframe的几种方式:https://www.jb51.net/article/172623.htm 选择列 使用类字典属性,返回的是Series类型 data['w'] 遍历Series for index in data['w'] .index: time_dis = data['w'] .get(index) pandas.DataFrame.at 根据行索引和列名,获取一个元素的值 >>> df = pd.DataFrame(
随机推荐
- Docker 给运行中的容器设置端口映射的方法
- Thinkphp多文件上传实现方法
- 使用准则进行条件查询--1.4.从窗体中选择查询的条件
- 正则表达式i修饰符(大小写不敏感)
- win2003服务器安全必做基础设置
- JavaScript实现in-place思想的快速排序方法
- 轻松掌握JavaScript状态模式
- 移动端web滚动分页的实现方法
- php获取本周星期一具体日期的方法
- Python遍历目录中的所有文件的方法
- Android学习之SharedPerference存储详解
- 探讨c#中的unchecked是什么意思,起什么作用?
- mysql 5.7.14 免安装版注意事项(精)
- PHP反射API示例分享
- 解析Python中的__getitem__专有方法
- Android使用SwipeListView实现类似QQ的滑动删除效果
- 批处理利用HOSTS文件(屏蔽,加速)网站的代码
- 基于jquery的checkbox下拉框插件代码
- Android监听Home键实例详解
- Android实现网易新闻客户端侧滑菜单(2)