mysqli怎么取自增ID和受影响行数?insert_id和affected_rows怎么读?

轻瑶大大_8081

轻瑶大大_8081

2026-11-12

209人浏览

原创

在php中使用mysqli扩展执行insert语句后,可以通过对象属性 $result->insert_id 获取最后插入的自增id,通过 $result->affected_rows 获取受影响的行数。这两个属性分别对应英文单词 "insert"(插入)和 "affected rows"(受影响行),读音分别为 /ɪnˈsɜːrt ɪd/ 和 /əˈfektɪd roʊz/。

mysqli怎么取自增ID和受影响行数?insert_id和affected_rows怎么读?

如何获取最后插入的自增ID?

使用 insert_id 属性可以获取最近一次 INSERT 操作生成的自增 ID。该属性返回一个整数或字符串类型的值,具体取决于数据库驱动的实现。如果前一次查询不是 INSERT 操作,或者没有自增列,则可能返回 0 或空值。

mysqli怎么取自增ID和受影响行数?insert_id和affected_rows怎么读?

$mysqli = new mysqli("localhost", "username", "password", "database");
$mysqli->query("SET NAMES 'utf8'");

$sql = "INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')";
if ($mysqli->query($sql) === TRUE) {
    $lastId = $mysqli->insert_id;
    echo "Last inserted ID: " . $lastId;
} else {
    echo "Error: " . $mysqli->error;
}

$mysqli->close();

上述代码中,$mysqli->insert_id 在执行成功后的 INSERT 语句后立即生效。注意:只有在单线程环境下且未进行其他并发写入时,该值才准确反映当前会话的最后插入 ID。

如何获取受影响的行数?

使用 affected_rows 属性可以获取上一条 SQL 语句所影响的记录数量。对于 INSERT、UPDATE 和 DELETE 操作,该值通常大于等于 0。若为 SELECT 查询,则始终返回 0。

win可用的mysql指令skill
win可用的mysql指令skill

安装、修复、更新或打包一个基于 Python 和 PyMySQL 实现的 Windows `mysql` 命令。适用于用户希望在 PowerShell/CMD 中输入 `mysql` 时重定向到 Python 实现、需要交互式输入 MySQL 连接信息、需要同步到当前用户本地 bin 目录,或需要将该能力封装成可公开复用的 Codex skill。

下载

mysqli怎么取自增ID和受影响行数?insert_id和affected_rows怎么读?

$mysqli = new mysqli("localhost", "username", "password", "database");
$mysqli->query("SET NAMES 'utf8'");

$sql = "UPDATE users SET status = 'active' WHERE id > 10";
if ($mysqli->query($sql)) {
    $rowsAffected = $mysqli->affected_rows;
    echo "Rows affected: " . $rowsAffected;
} else {
    echo "Error: " . $mysqli->error;
}

$mysqli->close();

此示例展示了如何通过 affected_rows 判断 UPDATE 是否真正修改了数据。若返回值为 0,说明没有匹配到符合条件的记录,也未发生实际更改。

当插入失败时 insert_id 和 affected_rows 的值是什么?

当 INSERT 或 UPDATE 语句执行失败时,insert_id 和 affected_rows 均不会更新,仍保留上一次成功操作的结果。因此,在调用这些属性之前应检查 query() 的返回值是否为 TRUE,以避免误读旧数据。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

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

下载

相关标签:

php数据库交互 mysql

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

120

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

60

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

80

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

60

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

60

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

60

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

60

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

60

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程