我在一个PHP脚本中有几个mySQL查询,将它们放在一个事务中。

我想获取每个查询的最后插入的ID,但只能在第一次使用,因为最后插入的ID保持不变(我想这是因为它被有效地视为一个大查询,并且只有一个连接)。

这些是我的查询:

$conectarDB->beginTransaction();

$a = $conectarDB->prepare("  INSERT INTO usuarios SET  userEmail =?, userName =? WHERE userID=?  ");
$a->bindParam(1, $userEmail);
$a->bindParam(2, $userApellido);
$a->bindParam(3, $userID);
$a->execute();

$pago1 = $conectarDB->lastInsertId();

$b = $conectarDB->prepare("  INSERT INTO versionesUsuarios  SET userID=?, userEmail=?  ");
$b->bindParam(1, $userID);
$b->bindParam(2, $userEmail);
$b->execute();

$pago2 = $conectarDB->lastInsertId();

$conectarDB->commit();


如何解决呢?如何获取$pago1$pago2

最佳答案

我认为您可以在每次执行查询后尝试使用此方法。我希望它能工作。

$keys = $conectarDB->query("SELECT LAST_INSERT_ID()");
$arr = $keys->fetchColumn();

07-24 09:44