Получение последнего вставленного идентификатора из MySQL в Yii - PullRequest
1 голос
/ 26 февраля 2012

Я хочу показать последний идентификатор входа из базы данных в представлении> _form.php file. Я сделал код в файле _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>

Здесь Form - это таблица и название модели. Но я все еще получаю ID:0. Где неправильная часть?

Ответы [ 3 ]

8 голосов
/ 28 февраля 2012

Ответ Пекки хорош для общего . Но если вы хотите выполнить это действие в Yii Framework, попробуйте это:

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

Или вы можете попробовать это тоже для общего решения:

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

Наконец, я предлагаю вам проверить этот

7 голосов
/ 26 февраля 2012

Все функции last_insert_id (будь то обертки PHP или нативная mySQL) обычно ссылаются на последний идентификатор, созданный с использованием текущего подключения к базе данных. Вероятно, последний логин не был создан во время того же запроса Вы показываете таблицу, поэтому этот метод не будет работать для вас.

Используйте обычный SELECT, чтобы узнать новейший логин - например, используя ORDER by creationtime DESC LIMIT 1.

Похожие: Как получить наибольшее значение поля в таблице в MySQL?

2 голосов
/ 11 июля 2012
$max = Yii::app()->db->createCommand()->select('max(id) as max')->from('TABLENAME')->queryScalar();

Просто добавьте один, чтобы получить следующий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...