这是源代码,我需要检测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();
}
最合适的方法是什么?
答案 0 :(得分:6)
$lastInsertID = $connection->getLastInsertID();
答案 1 :(得分:2)
你可以尝试两种方式,这里getLastInsertID是方法,而lastInsertID是属性
$lastInsertID = $connection->getLastInsertID();
或
$lastInsertID = $connection->lastInsertID;
答案 2 :(得分:1)
我创建了这个来解决这个问题
public static function getAutoIncrement($table_name)
{
$q = new Query();
$res = $q->select("AUTO_INCREMENT")
->from('INFORMATION_SCHEMA.TABLES')
->where("TABLE_SCHEMA = DATABASE() AND TABLE_NAME = '" . $table_name . "'")
->one();
if ($res)
return $res["AUTO_INCREMENT"];
return false;
}