2013-12-09 3 views
1

Я делаю IS и у меня проблема с обновлением таблицы mysql. Я использую PHP 5.3 и PDO.PDO: Недопустимый номер параметра

  $query_update = $this->db_connection->prepare('UPDATE Client SET name =: name, surname=:surname WHERE id=:id'); 
      $query_update->bindValue(':id', $id, PDO::PARAM_INT); 
      $query_update->bindValue(':name', $name, PDO::PARAM_STR); 
      $query_update->bindValue(':surname', $surname, PDO::PARAM_STR); 
      $query_update->execute(); 

Предупреждения: PDOStatement :: Execute() [pdostatement.execute]: SQLSTATE [HY093]: Неверный номер параметра: число связанных переменных не соответствует числу маркеров в файле на линию X. Предупреждения является ссылочная строка с помощью execute().

Спасибо за помощь.

EDIT: Он работает сейчас, снова спасибо за помощь.

ответ

6

У вас слишком много места. Исправьте вы запрашиваете к этому:

$this->db_connection->prepare('UPDATE Client SET name =:name, surname=:surname WHERE id=:id'); 
// -----------------------------------------------------^ 

Это приводит только два переменные, используемый в запросе, который не совпадает с 3 переменными, предоставляемыми.

(Ваш запрос в текущей форме должен выдавать ошибку в любом положении в том же положении.)

Смежные вопросы