今天我把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