📜  插入查询返回id mysql(1)

📅  最后修改于: 2023-12-03 15:39:51.804000             🧑  作者: Mango

在MySQL中插入数据并返回对应的id

有时候,我们需要在MySQL数据库中插入一条数据,并且需要获取插入数据的id,以便后续操作。这时候就需要用到MySQL提供的插入查询语句。

插入查询语句的语法

插入查询语句的语法如下:

INSERT INTO table_name (column1, column2, column3,...) 
VALUES (value1, value2, value3,...);
SELECT LAST_INSERT_ID();
  • table_name 表示要插入数据的表名。
  • (column1, column2, column3,...) 表示要插入数据的列名。
  • (value1, value2, value3,...) 表示要插入的数据值。
  • SELECT LAST_INSERT_ID(); 语句用于获取插入数据的id。
插入查询语句的示例

假设我们有一个 users 表,包含 id, name, age 三列,现在需要插入一条数据 ('Tom', 18),并获取插入数据的 id

INSERT INTO users (name, age) 
VALUES ('Tom', 18);
SELECT LAST_INSERT_ID();

执行以上语句后,可以得到以下结果:

+------------------+
| LAST_INSERT_ID() |
+------------------+
|                1 |
+------------------+

其中,1 就是插入数据的 id

用PHP代码实现插入查询

在PHP代码中,我们可以使用MySQL提供的 mysqliPDO 扩展来执行插入查询。下面是使用 mysqli 扩展的示例代码:

<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检测连接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// 插入数据
$sql = "INSERT INTO users (name, age) VALUES ('Tom', 18);";
$conn->query($sql);

// 获取插入数据的id
$id = $conn->insert_id;

echo "New record created successfully. Last inserted ID is: " . $id;

// 关闭连接
$conn->close();
?>

使用 PDO 扩展的示例代码:

<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // 设置 PDO 错误模式为异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 插入数据
    $sql = "INSERT INTO users (name, age) VALUES ('Tom', 18);";
    $conn->exec($sql);

    // 获取插入数据的id
    $id = $conn->lastInsertId();
    echo "New record created successfully. Last inserted ID is: " . $id;
} catch(PDOException $e) {
    echo $sql . "<br>" . $e->getMessage();
}

// 关闭连接
$conn = null;
?>

以上是插入查询语句的基本用法和示例代码,希望对大家学习MySQL有所帮助。