如何使用createCommand在yii2中获取最后一个插入的id?

Rah*_*hul 18 php mysql yii2

我正在使用yii2php框架.我希望使用插入记录到数据库transaction.如何使用最后插入的id createCommand().

请检查以下代码,

$db = Yii::$app->db;
$sql = $db->createCommand()->insert('user', [
                             'name' => 'test',
                             'email_address' => 'test@test.com',
                             'phone_number' => '432432424',
                            ])->execute();
Run Code Online (Sandbox Code Playgroud)

Cha*_*h M 37

Yii::$app->db->createCommand($sql)->execute();
Run Code Online (Sandbox Code Playgroud)

然后调用函数getLastInsertID,

 $id = Yii::$app->db->getLastInsertID();
Run Code Online (Sandbox Code Playgroud)

  • 这对竞争条件安全吗?例如,用户A插入`items`,这个刚插入的行的id是5,在A调用`getLastInsertID()之前`用户B插入另一行.现在A调用说方法.他会得到5分或6分吗? (6认同)

J.K*_*.A. 5

你可以这样做:

$lastInsertID = $db->getLastInsertID();
echo $lastInsertID;
Run Code Online (Sandbox Code Playgroud)