首页博客网络编程
我们已经介绍了如何在数据库中存储数据的基础知识。但是,当您进入它时,可能很难跟踪您的数据条目。获取MySQL最后插入ID是一个有用的功能,可让您快速轻松地检索添加到数据库的最后一条记录的ID。
你可以通过简单地使用一些简单的语句来使MySQL获得最后插入ID,例如mysql_insert_id()。在本教程中,我们将提供代码示例,说明使用 MySQLi 和 POD 的 ID 检索过程。
此外,我们将解释当您想要获取最新记录的 ID 时要应用的其他函数。例如,echo 语句用于输出结果。
PHP 允许您获取最后插入的记录的 ID。
此过程可帮助您跟踪表中当前拥有的记录数。
获取MySQL最后插入ID的最常见方法之一是使用该语句。mysql_insert_id()
您可能还记得我们以前的课程,当表包含列时,MySQL会自动生成ID。请记住,当您使用 or 函数时。AUTO_INCREMENTinsertupdate
让我们看一段脚本,用于创建一个名为 users 的表。您可以看到列user_id设置为:AUTO_INCREMENT
CREATE TABLE users ( user_id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(40) NOT NULL, password VARCHAR(40) NOT NULL, email VARCHAR(60), register_date TIMESTAMP )
在下面提供的代码示例中,您将看到我们如何添加一行代码来检索MySQL最后插入ID。我们使用语句来显示它。echo
就像我们之前关于如何插入和删除表数据的课程一样,这三个示例表示三种数据库连接类型。您将看到如何执行MySQLi面向对象,MySQLi过程和PDO最后插入ID搜索。
让我们从使用 MySQLi 面向对象的连接获取 MySQL 上次插入的 ID 开始:
例复制
<?php
$host = 'host';
$user = 'user';
$pass = 'pass';
$db = 'db'; // Create connection
$conn = new mysqli($host, $user, $pass, $db);
// Check connection
if ($conn->connect_error) {
die("Failed to connect: " . $conn->connect_error);
}
$sql = "INSERT INTO users (username, password, email) VALUES ('Johny', 'Dawkins', 'johny@example.com')";
if ($conn->query($sql) === TRUE) {
$latest_id = $conn->insert_id;
echo "Insert successful. Latest ID is: " . $latest_id;
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
如果您使用的是MySQLi过程连接,则只需使用语句即可使MySQL获取最后插入ID:mysql_insert_id()
例复制
<?php
$host = 'host';
$user = 'user';
$pass = 'pass';
$db = 'db'; // Create connection
$conn = mysqli_connect($host, $user, $host, $db);
// Check connection
if (!$conn) {
die("Failed to connect: " . mysqli_connect_error());
}
$sql = "INSERT INTO users (username, password, email) VALUES ('Johny', 'Dawkins', 'johny@example.com')";
if (mysqli_query($conn, $sql)) {
$latest_id = mysqli_insert_id($conn);
echo "Insert successful. Latest ID is: " . $latest_id;
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
在PDO中,可以通过以下方式检索最后一个插入ID:
例复制
<?php
$host = 'host';
$user = 'user';
$pass = 'pass';
$db = 'db'; try {
$conn = new PDO("mysql:host=$host;dbname=$db", $user, $pass); // set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO users (username, password, email) VALUES ('Johny', 'Dawkins', 'johny@example.com')";
// use exec() because no results are returned
$conn->exec($sql);
$latest_id = $conn->lastInsertId(); echo "Insert successful. Latest ID is: " . $latest_id;
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
使用 MySQL 和 PHP,很容易获取您插入的最后一个条目的 ID。
借助此功能,您始终可以知道插入了多少条记录。
如果您使用的是 MySQLi 过程连接,则获取最后一个条目 ID 的最简单方法是调用语句。mysql_insert_id()
声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!
广告位
广告位