首页博客网络编程
如何获取MySQL上次插入ID并轻松跟踪数据
摘要 使用 MySQL 和 PHP,很容易获取您插入的最后一个条目的 ID。 借助此功能,您始终可以知道插入了多少条记录。 如果您使用的是 MySQLi 过程连接,则获取最后一个条目 ID 的最简单方法是调用语句。mysql_insert_id()

我们已经介绍了如何在数据库中存储数据的基础知识。但是,当您进入它时,可能很难跟踪您的数据条目。获取MySQL最后插入ID是一个有用的功能,可让您快速轻松地检索添加到数据库的最后一条记录的ID。

你可以通过简单地使用一些简单的语句来使MySQL获得最后插入ID,例如mysql_insert_id()。在本教程中,我们将提供代码示例,说明使用 MySQLi 和 POD 的 ID 检索过程。

此外,我们将解释当您想要获取最新记录的 ID 时要应用的其他函数。例如,echo 语句用于输出结果。

内容

MySQL 最后插入 ID:主要提示

  • PHP 允许您获取最后插入的记录的 ID。

  • 此过程可帮助您跟踪表中当前拥有的记录数。

  • 获取MySQL最后插入ID的最常见方法之一是使用该语句。mysql_insert_id()

检索 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 最后插入 ID:摘要

  • 使用 MySQL 和 PHP,很容易获取您插入的最后一个条目的 ID。

  • 借助此功能,您始终可以知道插入了多少条记录。

  • 如果您使用的是 MySQLi 过程连接,则获取最后一个条目 ID 的最简单方法是调用语句。mysql_insert_id()


声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!

本文链接:https://www.gaoxuejun173.top/blog/184

广告位

本文配乐
来说两句吧

该文章已禁止评论

最新评论

广告位