PHP MySQL 获取最后插入的 ID
获取最后插入记录的 ID
如果我们对具有 AUTO_INCREMENT 字段的表执行 INSERT 或 UPDATE,我们可以立即获取最后插入/更新的记录的 ID。
在“MyGuests”表中,“id”列是一个AUTO_INCREMENT字段:
创建表 MyGuests (
id INT(6) 无符号自动增量主键,
名字 VARCHAR(30) NOT NULL,
姓氏 VARCHAR(30) NOT NULL,
电子邮件 VARCHAR(50),
reg_date 时间戳默认 CURRENT_TIMESTAMP 更新时 CURRENT_TIMESTAMP
)
以下示例与上一页的示例相同(PHP 将数据插入到 MySQL),只不过我们添加了一行代码来检索最后插入的记录的 ID。我们还会回显最后插入的 ID:
示例(MySQLi 面向对象)
<?php
$服务器名称 = “本地主机”;
$用户名 = “用户名”;
$password = "密码";
$数据库名称 = “myDB”;
// 创建连接
$conn = new mysqli($服务器名称,$用户名,$密码,$数据库名称);
// 检查连接
如果 ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
$sql =“插入MyGuests(名字,姓氏,电子邮件)
值 ('John', 'Doe', 'john@example.com')";
如果 ($conn->query($sql) === TRUE) {
$last_id = $conn->插入_id;
echo "新记录创建成功。最后插入的 ID 是:" . $last_id;
} 别的 {
echo "错误:". $sql."<br> “.$conn->错误;
}
$conn->关闭();
?>
示例(MySQLi 过程)
<?php
$服务器名称 = “本地主机”;
$用户名 = “用户名”;
$password = "密码";
$数据库名称 = “myDB”;
// 创建连接
$conn = mysqli_connect($服务器名称,$用户名,$密码,$数据库名称);
// 检查连接
如果(!$ conn){
die("连接失败: " . mysqli_connect_error());
}
$sql =“插入MyGuests(名字,姓氏,电子邮件)
值 ('John', 'Doe', 'john@example.com')";
如果(mysqli_query($conn,$sql)){
$last_id = mysqli_insert_id($conn);
echo "新记录创建成功。最后插入的 ID 是:" . $last_id;
} 别的 {
echo "错误:". $sql."<br> “.mysqli_error($conn);
}
mysqli_close($conn);
?>
示例 (PDO)
<?php
$服务器名称 = “本地主机”;
$用户名 = “用户名”;
$password = "密码";
$dbname =“myDBPDO”;
尝试 {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 将 PDO 错误模式设置为异常
$conn->设置属性(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$sql =“插入MyGuests(名字,姓氏,电子邮件)
值 ('John', 'Doe', 'john@example.com')";
// 使用 exec() 因为没有返回结果
$conn->执行($sql);
$last_id = $conn->lastInsertId();
echo "新记录创建成功。最后插入的 ID 是:" . $last_id;
} 捕获(PDOException $e){
回显$sql”。<br> “.$e->获取消息();
}
$conn = 空;
?>