php - 使用 PDO 插入时获取自动递增行 ID

标签 php mysql pdo

我正在将新数据插入MySQL,并且我有一个名为“bookingid”的列,它是主键并且具有自动增量。我需要获取插入数据后自动递增的数量,这是我的代码:

    try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

   // prepare sql and bind parameters
$stmt = $conn->prepare("INSERT INTO reservations (bookingdatetime, firstname, lastname, address) 
VALUES (:bookingdatetime, :firstname, :lastname, :address)");

$stmt->bindParam(':bookingdatetime', $bookingdatetime);
$stmt->bindParam(':firstname', $fname);
$stmt->bindParam(':lastname', $lname);
$stmt->bindParam(':address', $address);


// insert a row

$stmt->execute();

echo "success! row id: ";

}catch(PDOException $e){
echo json_encode(array("title" => "Database Error", "body" => $e->getMessage()));
}
$conn = null;

如何回显显示“成功!行 ID:”的增量?谢谢!

最佳答案

您可以使用lastInsertId()检索插入的最后一行:

$stmt->execute();
echo "success! row id: $stmt->lastInsertId()";

注意事务中lastInsertId()必须commit()之前调用,否则会返回0.

关于php - 使用 PDO 插入时获取自动递增行 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58209998/

相关文章:

php - 删除 woocommerce 简短描述字段

php - 从数据库中删除/删除

MySQL 性能 : Single table or multiple tables

php - PHP 5.3 和 5.4 中访问数组的差异或某些配置不匹配?

php - 也获取适用于 Woocommerce 产品变体的 is_purchasable Hook

php - Yii2 如何使用 PDO 执行两条语句?或其他方式

mysql - 如果没有结果则返回指定值

mysql - 有没有简单的方法可以转换为PDO

php - 使用 PHP session 并使用 PDO 选择 bool?

php - 使用 PDO 将数组的日期格式更改为 MySQL 格式