Идентификатор вставленной записи

Всем привет!

Есть вот такой вот код




$q = Yii::app ()->db->createCommand ( 'INSERT INTO '.$this->tableName().' (maintainers_name, usr_id) VALUES(:maintainers_name,:usr_id)' );

            $q->bindParam ( ':maintainers_name', $this->maintainers_name, PDO::PARAM_STR );

            $q->bindParam ( ':usr_id', $this->usr_id, PDO::PARAM_STR );

            $q = $q->execute ();



Каким образом получить идентификатор вставленной записи?

Используется СУБД PostgresQL

Пробовал проделывать это с использованием Active Record(Куда проще и красивее, чем ручками)

Что обнаружил…при использовании метода save() скрипт почему-то пытается обновить имеющеюся запись(в мануалах о таком поведении ничего не сказано).

Из лога:


2010/02/25 08:41:49 [trace] [system.db.CDbCommand] Executing SQL: UPDATE "maintainers" SET "maintainers_name"=:yp0, "usr_id"=:yp1 WHERE "maintainers"."maintainers_id" IS NULL

Покопался, нашёл метод insert(), он выдал такую ошибку: "CDbException The active record cannot be inserted to database because it is not new."

Гугление ничего не дало.

Версия фреймворка 1.1.0

  1. через актив рекорд получение PK:

$model->getPrimaryKey();

  1. чтобы не создавалась новая запись, ее надо сначало получить, например:

$user = User::model()->findByPk(1);

$user->name = ‘qwe’;

$user->save(false);

или модели выставить флаг isNewRecord: $model->isNewRecord = false;

еще у актив рекорд есть методы update() и updateAll()

Прошу прощения, видимо мы не так друг друга поняли…

Дело в том, что мне нужно добавить новую запись и получить её идентификатор

Вродебы разобрался, всё работает, спасибо




if ($this->validate()) {

       $this->isNewRecord = true;

                   if ($this->save(false)) {

...



А как получить id записи если она была создана конструктором запросов, а не через ектив ркорд?

Сотреть тут getLastInsertID

Поделитесь пожалуйста - как Вы получаете ID вставленной записи?

П.С. Смотрю некоторые варианты - но мне кажется что в результате есть возможность получить не тот ID

После $this->save, id будет в $this->id