PHP增删改查怎么获取最后插入ID_phplastInsertId用法【技巧】

星夢妙者
发布: 2025-12-23 08:34:55
原创
182人浏览过
PHP中获取INSERT后自增主键需调用对应扩展函数:mysqli用lastInsertId()或insert_id,PDO用lastInsertId(),PostgreSQL须用RETURNING子句配合fetchColumn()。

php增删改查怎么获取最后插入id_phplastinsertid用法【技巧】

在PHP中执行INSERT操作后,若需获取数据库自增主键的最新值,必须调用特定函数以确保获取准确的ID。以下是几种主流数据库扩展中获取最后插入ID的具体方法:

一、使用mysqli面向对象方式

mysqli扩展提供lastInsertId()方法,适用于已成功执行INSERT语句后的连接实例,该方法返回最后一次INSERT操作生成的自增ID值。

1、通过new mysqli()建立数据库连接,并检查连接是否成功。

2、执行INSERT语句,例如:$mysqli->query("INSERT INTO users(name,email) VALUES('张三','zhang@example.com')");

立即学习PHP免费学习笔记(深入)”;

3、调用$mysqli->insert_id$mysqli->last_insert_id()获取刚插入记录的ID。

二、使用mysqli过程式方式

过程式调用依赖于有效的连接资源和上一次INSERT查询结果,其行为与面向对象方式一致,但语法结构不同。

1、使用mysqli_connect()建立连接,并用mysqli_select_db()选择数据库。

2、执行INSERT语句,例如:mysqli_query($conn, "INSERT INTO products(title,price) VALUES('笔记本',5999)");

3、立即调用mysqli_insert_id($conn)获取ID,注意必须传入当前连接资源变量。

三、使用PDO方式

PDO提供lastInsertId()方法,可在执行INSERT后直接调用,不依赖SQL语句是否含RETURNING子句(PostgreSQL除外),适用于多种数据库驱动。

1、使用new PDO()创建PDO实例,设置ATTR_ERRMODE为ERRMODE_EXCEPTION。

Nanonets
Nanonets

基于AI的自学习OCR文档处理,自动捕获文档数据

Nanonets 258
查看详情 Nanonets

2、准备并执行INSERT语句,例如:$pdo->exec("INSERT INTO orders(user_id,total) VALUES(101,299.99)");

3、调用$pdo->lastInsertId()获取新插入行的自增主键值。

四、使用PDO预处理语句方式

当INSERT语句使用prepare/execute执行时,lastInsertId()仍可正常工作,前提是执行发生在同一PDO连接上下文中。

1、调用$pdo->prepare()创建PDOStatement对象,绑定参数后执行INSERT。

2、确保execute()返回true,表示插入成功。

3、在同一线程、同一PDO连接上调用$pdo->lastInsertId(),不可跨连接或延迟调用。

五、PostgreSQL特殊处理

PostgreSQL不支持标准的lastInsertId机制,需在INSERT语句中显式添加RETURNING子句以直接返回生成的ID。

1、编写INSERT语句时附加RETURNING id,例如:"INSERT INTO articles(title) VALUES('PHP教程') RETURNING id";

2、使用PDO执行该语句并调用fetchColumn()获取返回值。

3、此时$pdo->lastInsertId()将返回空字符串,必须依赖RETURNING结果。

以上就是PHP增删改查怎么获取最后插入ID_phplastInsertId用法【技巧】的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号