我在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
答案 0 :(得分:0)
我认为你可以在每次执行查询后尝试这个。我希望它的工作。
$keys = $conectarDB->query("SELECT LAST_INSERT_ID()");
$arr = $keys->fetchColumn();
答案 1 :(得分:0)
可能是因为commit会立即执行所有查询。尝试在每个插入查询中开始并提交。
$pago1 = $conectarDB->lastInsertId();
$conectarDB->commit();
$conectarDB->beginTransaction();