插入mysql后返回id=1


returns id=1 after insert mysql

今天我把mysql改成了PDO。现在我有个小问题。所以当我使用mysql时,我想知道刚刚插入的行id我只需要这样做:

$id = $obj_db_write->insert("reservations",$arr_kolommen,$arr_waardes);

当我打印$id时,我得到:(例如:)5462

当我现在使用同一行时,我得到1作为Id。

问题:当插入该行时,其他列将使用该ID在其他表中添加字段。所以现在我得到这个错误:

: PDO::query() [pdo.query]: SQLSTATE[23000]:违反完整性约束:1062键'RSVR_ID'的重复条目'1-double'in /data/local/www/wereldreizen/html/phpclasses/class_db.php on line 229

这是意料之中的,因为RSVR_ID是1,而1已经插入了。

有人知道我错在哪里吗?提前感谢!

最后一个自动插入id可通过PDO::lastInsertId和你调用的方法应该返回该值;就像

class ... {
   public function insert(...) {
      ...
      return $this->pdo->lastinsertid();
   }

使用PDO,您不会将新插入的ID作为查询的结果。使用

PDO::lastInsertId

。在你的例子中,它可以像这样:

 $affectedRows = $obj_db_write->exec(your-insert-statement);
 $lastInsertedID = $obj_db_write->lastInsertId();

查看http://www.php.net/manual/de/book.pdo.php获取完整的PDO API