今天我将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密钥'1-double'
的重复条目'RSVR_ID'
在/data/local/www/wereldreizen/html/phpclasses/class_db.php
上 229
由于RSVR_ID为1,已经插入了1,因此非常期待。
有人知道我哪里错吗? 提前谢谢!
答案 0 :(得分:2)
最后一个自动插入ID可通过PDO::lastInsertId获得,您正在调用的方法应返回该值;
之类的东西class ... {
public function insert(...) {
...
return $this->pdo->lastinsertid();
}
答案 1 :(得分:1)
使用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。