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

时间:2012-02-26 19:02:01

标签: php mysql yii

我想在视图中显示数据库中的最后一个登录ID> _form.php文件。我已经在_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>

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

3 个答案:

答案 0 :(得分:8)

Pekka的回答适用于普通。但是,如果您想在Yii Framework中执行此操作,请尝试以下操作:

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

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

Yii::app()->db->getLastInsertID();

最后,我建议您查看this

答案 1 :(得分:7)

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

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

相关:How to get a highest field value in a table in MySQL?

答案 2 :(得分:2)

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

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