Intereting Posts
инициализация PHP-взаимодействия Symfony 2 присоединяется к неработающей доктрине и MySQL Лучшее решение для защиты PHP-кода без шифрования exec () продолжает выполнение команды Again and Again как бесконечный цикл, несмотря на отсутствие цикла в программе PHP получает время создания каталога Окно обновления PHP? эквивалентно перезагрузке страницы F5? Использование magic_quotes () влияет на использование mysql_real_escape_string () Класс подключения базы данных PHP Предупреждение: mysqli_stmt :: bind_param (): Число переменных не соответствует количеству параметров в подготовленном операторе в C: \ User .. \ on 148 Как этот PHP закодирован? Получение массива узлов, связанных с термином категории с API-интерфейсом Drupal Почему, когда я отправляю XML на PHP, это узлы в нижнем регистре, но когда я разбираю их на PHP, они имеют верхний регистр? Crypt для хэширования паролей. Blowfish производит странный выход php – найти, если массив содержит элемент Попытка заменить части строки начинаются с одинаковых символов поиска

Изменено PDO :: ATTR_EMULATE_PREPARES на FALSE и появляется ошибка «Недопустимый номер параметра»

Для примера у меня есть следующий код:

$dbStatement=$this->dbObject->prepare("SELECT AVG(quality) as quality, AVG(adequacy) as adequacy, AVG(friendliness) as friendliness, SUM(overall) as overall, SUM(completed) as completed, type FROM (SELECT AVG(quality) as quality, AVG(adequacy) as adequacy, AVG(friendliness) as friendliness, COUNT(id) as overall, SUM(is_completed) as completed, category_id, type FROM valuation a WHERE status =1 AND type =:01 AND ((type='employer' AND owner_id=:02) OR (type='employee' AND winner_id=:02)) GROUP BY category_id HAVING COUNT(id)<=:03) b GROUP BY type"); $dbStatement->bindParam(':01',$Type); $dbStatement->bindParam(':02',$UserID); $dbStatement->bindParam(':03',$Most); $dbStatement->execute(); 

Этот код генерирует исключение из execute() когда я устанавливаю PDO::ATTR_EMULATE_PREPARES в FALSE . В объект исключения включено следующее сообщение:

SQLSTATE [HY093]: недопустимый номер параметра

Пока не удалось решить проблему, хотя прочитайте соответствующие руководства.

Solutions Collecting From Web of "Изменено PDO :: ATTR_EMULATE_PREPARES на FALSE и появляется ошибка «Недопустимый номер параметра»"

Ошибка связана с повторением заполнитель . Каждый заполнитель должен быть уникальным, даже если вы привязываете к нему один и тот же параметр.

 AND ((type='employer' AND owner_id=:02) OR (type='employee' AND winner_id=:02)) 

Должно быть:

 AND ((type='employer' AND owner_id=:02) OR (type='employee' AND winner_id=:another02)) 

И затем привязывайтесь к нему:

 $dbStatement->bindParam(':01',$Type); $dbStatement->bindParam(':02',$UserID); $dbStatement->bindParam(':another02',$UserID); $dbStatement->bindParam(':03',$Most);