这是源代码,我需要检测ID(见下面两个查询之间的标记位置)。
$connection = Yii::app()->db;
$transaction=$connection->beginTransaction();
try {
$q = "INSERT INTO `someTable1` .... ";
$connection->createCommand($q)->execute(); // Single Row Inserted
// HERE!! How to get the last insert ID from query above
$q = "INSERT INTO `someTable2` ....
WHERE id = LAST_INSERT_ID_FROM_FIRST_QUERY ";
$connection->createCommand($q)->execute();
$transaction->commit();
} catch (Exception $e) {
// react on exception
$trans->rollback();
}
最合适的方法是什么呢?
4条答案
按热度按时间gdrx4gfi1#
c2e8gylq2#
您可以尝试两种方法,这里getLastInsertID是方法,而lastInsertID是属性,
或
更多信息http://www.yiiframework.com/doc/api/1.1/CDbConnection
wxclj1h53#
我创造这个是为了解决那个问题
2eafrhcq4#
对于任何感兴趣的人:
saveMethod中的ActiveRecord执行类似于
结果是
模式以它自己的方式做到这一点:
我建议使用
schema->insert
,它支持复合标识符,并使用序列名来获取最后一个ID