PHP中mysqli 获取上一次由 MySQL 操作产生的 AUTO_INCREMENT 的 ID
封面图
•
2025-11-30
•
PHP
218
0
0
0
在 PHP 中使用 `mysqli` 扩展时,你可以通过 `mysqli_insert_id()` 函数来获取上一次由 MySQL 操作产生的 **AUTO_INCREMENT** 的 ID。 ### 示例代码: ```php <?php // 连接到数据库 $mysqli = new mysqli("localhost", "username", "password", "database"); // 检查连接是否成功 if ($mysqli->connect_error) { die("连接失败: " . $mysqli->connect_error); } // 插入数据 $sql = "INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com')"; if ($mysqli->query($sql) === TRUE) { // 获取最后插入的 AUTO_INCREMENT ID $last_id = $mysqli->insert_id; echo "新记录插入成功,ID 为: " . $last_id; } else { echo "插入失败: " . $mysqli->error; } // 关闭连接 $mysqli->close(); ?> ``` ### 关键点: - `mysqli->insert_id` 是一个属性(不是函数),它返回最后一次插入操作生成的自增 ID。 - 它只对 **MySQL** 有效,不适用于其他数据库(如 PostgreSQL)。 - 确保你是在同一个连接中进行查询和获取 ID,否则可能得不到正确的值。 ### 注意事项: - 如果你在多个连接中操作,或者在同一个连接中执行了多个插入语句,`insert_id` 会返回最后一次插入的 ID。 - 如果你使用的是预处理语句(prepared statements),也一样可以使用 `insert_id` 获取最后插入的 ID。 ### 使用预处理语句的示例: ```php $stmt = $mysqli->prepare("INSERT INTO users (username, email) VALUES (?, ?)"); $stmt->bind_param("ss", $username, $email); $username = "jane_doe"; $email = "jane@example.com"; if ($stmt->execute()) { $last_id = $mysqli->insert_id; echo "新记录插入成功,ID 为: " . $last_id; } else { echo "插入失败: " . $stmt->error; } $stmt->close(); $mysqli->close(); ``` 如果你有任何关于多表插入、事务或并发问题,也可以继续问我!
上一篇:
PHP8 安装 redis 扩展
下一篇:
php将原数组倒序
标题录入,一次不能超过6条
留言
评论