Связывание большего количества значений, чем указано, невозможно; если в input_parameters существует больше ключей, чем в SQL, указанном в PDO :: prepare (), то инструкция завершится ошибкой и будет выдана ошибка.

ИТЬ

Я допускал мелкую ошибку, перечисляя ЦЕННОСТИ. Я должен был поставить ": имя пользователя", а не ": псевдоним". Я полагаю, что ответом на этот вопрос является бесплатное правление для всех, кто этого хочет? Или мне удалить вопрос?

ОРИГИНАЛ

Я уже давно использую шаблон активной записи Yii. Теперь моему проекту нужен доступ к другой базе данных для одной небольшой транзакции. Я думал, что DAO Yii будет хорошо для этого. Однако я получаю загадочную ошибку.

CDbCommand не удалось выполнить инструкцию SQL: SQLSTATE [HY093]: недопустимый номер параметра: параметр не был определен

Вот мой код:

public function actionConfirmation
{
    $model_person = new TempPerson();

    $model = $model_person->find('alias=:alias',array(':alias'=>$_GET['alias']));
    $connection=Yii::app()->db2;
            $sql = "INSERT INTO users (username, password, ssn, surname
                    , firstname, email, city, country) 
                    VALUES(:alias, :password, :ssn, :surname
                    , :firstname, :email, :city, :country)";
            $command=$connection->createCommand($sql);
            $command->bindValue(":username", $model->alias);
            $command->bindValue(":password", substr($model->ssn, -4,4));
            $command->bindValue(":ssn", $model->ssn);
            $command->bindValue(":surname", $model->lastName);
            $command->bindValue(":firstname", $model->firstName);
            $command->bindValue(":email", $model->email);
            $command->bindValue(":city", $model->placeOfBirth);
            $command->bindValue(":country", $model->placeOfBirth);
            $command->execute();
            $this->render('confirmation',array('model'=>$model));
}

Это создает следующий запрос (как видно из журнала приложения):

INSERT INTO users (username, password, ssn, surname, firstname, email
                   , city, country) 
VALUES(:alias, :password, :ssn, :surname, :firstname, :email, :city, :country);

FYI$model->placeOfBirth должен быть в ценностях города и округа. Это не опечатка (просто глупая вещь, которую я должен сделать).

Ответы на вопрос(3)

Ваш ответ на вопрос