在Yii中从MySQL获取最后插入的ID

New*_*ser 1 php mysql yii

我想在视图> _form.php文件中显示数据库中的最后一个登录ID.我已经在_form.php文件中生成了这样的代码

  <div class="row">
    <?php echo $form->labelEx($model,'id'); ?>
    <?php echo Yii::app()->db->getLastInsertId('Form');?>
    <?php echo $form->error($model,'id'); ?>
  </div>
Run Code Online (Sandbox Code Playgroud)

这里表格是表格和型号名称.但我仍然得到 ID:0.错误的部分是什么?

Ogu*_*han 8

Pekka的回答很常见.但如果您想要执行此操作Yii Framework,请尝试以下操作:

$myModel = new $model;
$model -> savel(false);
echo $model->primaryKey; // Prints the last id.
Run Code Online (Sandbox Code Playgroud)

或者您也可以尝试这个以获得一般解决方案:

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

最后,我建议你检查出这个


Pek*_*ica 7

所有last_insert_id函数(无论是PHP包装器还是本机mySQL版本)通常都是指使用当前数据库连接创建的最后一个ID .最后一次登录可能不会在您显示表格的同一请求中创建,因此此方法不适合您.

使用法线SELECT来查找最新的登录信息 - 例如使用ORDER by creationtime DESC LIMIT 1.

相关:如何在MySQL中的表中获得最高字段值?


小智 5

$max = Yii::app()->db->createCommand()->select('max(id) as max')->from('TABLENAME')->queryScalar();
Run Code Online (Sandbox Code Playgroud)

只需添加一个即可获得下一个。