首页博客网络编程
我们已经介绍了如何在数据库中存储数据的基础知识。但是,当您进入它时,可能很难跟踪您的数据条目。获取MySQL最后插入ID是一个有用的功能,可让您快速轻松地检索添加到数据库的最后一条记录的ID。
你可以通过简单地使用一些简单的语句来使MySQL获得最后插入ID,例如mysql_insert_id()。在本教程中,我们将提供代码示例,说明使用 MySQLi 和 POD 的 ID 检索过程。
此外,我们将解释当您想要获取最新记录的 ID 时要应用的其他函数。例如,echo 语句用于输出结果。
PHP 允许您获取最后插入的记录的 ID。
此过程可帮助您跟踪表中当前拥有的记录数。
获取MySQL最后插入ID的最常见方法之一是使用该语句。mysql_insert_id()
您可能还记得我们以前的课程,当表包含列时,MySQL会自动生成ID。请记住,当您使用 or 函数时。AUTO_INCREMENT
insert
update
让我们看一段脚本,用于创建一个名为 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()
声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!
广告位
广告位