MySQL 批量插入获取自动生成 ID - 完整示例与代码

在 MySQL 中,可以使用 LAST_INSERT_ID() 函数获取上一次插入操作中自动生成的 ID。如果要批量插入数据并获取每个插入操作的自动生成 ID,可以采用以下步骤:

  1. 使用 INSERT INTO ... VALUES (), (), (), ... 的语法批量插入数据。
  2. 在每次插入之后,立即执行 SELECT LAST_INSERT_ID() 获取自动生成的 ID,并保存到一个数组中。
  3. 最后,返回保存了所有自动生成 ID 的数组。

示例代码(使用 mysqli 扩展)

// 假设 $data 是一个二维数组,每行表示一条待插入数据
$sql = 'INSERT INTO my_table (col1, col2, col3) VALUES ';  
foreach ($data as $row) {  
    $sql .= '('' . $row['col1'] . '', '' . $row['col2'] . '', '' . $row['col3'] . ''),';  
}
$sql = rtrim($sql, ','); // 去掉最后一个逗号
$result = mysqli_query($conn, $sql);

if ($result) {  
    $id_array = array();  
    for ($i = 0; $i < mysqli_affected_rows($conn); $i++) {  
        $id_array[] = mysqli_insert_id($conn);  
    }  
    return $id_array;  
} else {  
    return false;  
}

使用 PDO 扩展获取自动生成 ID

如果你使用的是 PDO 扩展,也可以采用类似的方法获取自动生成 ID。

// ... 代码 ...
$stmt->execute();
$id_array = array();
for ($i = 0; $i < $stmt->rowCount(); $i++) {  
    $id_array[] = $conn->lastInsertId();  
}
// ... 代码 ...

注意:

  • 以上代码示例仅供参考,实际使用中需要根据具体情况进行调整。
  • 确保你的数据库配置正确,并且已成功连接到数据库。
  • 建议使用预处理语句来防止 SQL 注入攻击。
  • 如果你在使用其他数据库系统,请参考相应的文档了解如何获取自动生成 ID。
MySQL 批量插入获取自动生成 ID - 完整示例与代码

原文地址: https://www.cveoy.top/t/topic/nVU5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录