我有一个表和一个视图(从表中创建视图select *)。我正在使用php,mysql和doctrine 1.2 ORM。
如果我在表中插入数据,一切都按预期工作,但当我尝试将数据插入视图时,我收到以下错误:
Couldn't get last insert identifier.
知道怎么解决这个问题吗? (我真的需要使用视图,因此插入主表不行)
整个错误:
致命错误:未捕获的异常 'Doctrine_Connection_Exception'用 消息'无法获得最后一次插入 识别符“。在 C:\瓦帕\ WWW \ WWW \类\ lib中\ doctrine_1.2 \ lib中\学说\连接\ UnitOfWork.php:941 堆栈跟踪: C:\瓦帕\ WWW \ bicikel-WWW \类\ lib中\ doctrine_1.2 \ lib中\学说\连接\ UnitOfWork.php(636): Doctrine_Connection_UnitOfWork-> _assignIdentifier(对象(事件)) C:\瓦帕\ WWW \ WWW \类\ lib中\ doctrine_1.2 \ lib中\学说\连接\ UnitOfWork.php(566): Doctrine_Connection_UnitOfWork-> processSingleInsert(对象(事件)) C:\瓦帕\ WWW \ WWW \类\ lib中\ doctrine_1.2 \ lib中\学说\连接\ UnitOfWork.php(81): Doctrine_Connection_UnitOfWork->插入(对象(事件)) C:\瓦帕\ WWW \ WWW \类\ lib中\ doctrine_1.2 \ lib中\学说\ Record.php(1705): Doctrine_Connection_UnitOfWork-> saveGraph(对象(事件)) C:\瓦帕\ WWW \ WWW \ opravila \ migajznami_spider.php(97): Doctrine_Record-> save(){main}抛出 在 C:\瓦帕\ WWW \ WWW \类\ lib中\ doctrine_1.2 \ lib中\学说\连接\ UnitOfWork.php 在第941行
答案 0 :(得分:2)
可能你没有自动增量的主键。学说正在寻找自动增量属性。
答案 1 :(得分:1)
我更新了Doctrine文件,现在可以使用。
我更改了文件:Doctrine \ Connection \ UnitOfWork.php,第936行我在else块中添加了一些代码:
} else {
$id = $record->$identifier;
if(!$id){ // added
$id = $this->conn->sequence->lastInsertId(); // added
} // added
}