Почему возникает ошибка при выполнении запроса?

Здравствуйте! Выполняю с помощью PDO такой запрос:
$prep = $connect->prepare('INSERT  INTO vhosts (mainname,email,charset,index) VALUES (:mainname, :email, :charset, :index)' );
        $prep->execute(array(":mainname => $this->mainname" , ":email => $this->email" , ":charset => $this->charset" , ":index => $this->index" ));

Ошибка:
Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in ...
Насколько я понимаю, я что-то ему не передал (хотя в массиве есть всё необходимое).
  • Вопрос задан
  • 98 просмотров
Решения вопроса 2
@ukoHka
Всего понемногу
$prep->execute(array(":mainname" => $this->mainname , ":email"  => $this->email, ":charset"  => $this->charset, ":index" => $this->index ));
Ответ написан
$prep->execute(array(":mainname" => $this->mainname, ":email" => $this->email, ":charset" => $this->charset, ":index" => $this->index));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
Для именованных параметров надо передавать ассоциативный массив, а не числовой.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы