为什么?
try{
$st = $this->prepare("INSERT INTO thetable (a,b) VALUES (?,?)");
$st->execute(array(5,5));
$id = $this->lastInsertId();
echo $id; // nothing
echo gettype($id); // string
return $id; // and I get NULL returned, this is even weirder...
}catch(PDOException $e){
die($e);
return false;
}
该表有一个自动增量的id列。为什么我没有得到id值?
答案 0 :(得分:5)
所以PDO::lastInsertId();
是空的是你在PDO::commit()
之后调用它,我这样做是因为我使用的是原子事务。它需要在execute()...
请注意,我在上面的代码中没有beginTransaction和commit(),所以我的问题中的代码实际上是正确的,问题是在家里:)
答案 1 :(得分:1)
而不是
$this->lastInsertId();
你试过吗
$st->lastInsertId();