Задать вопрос
@MdaUZH

PDO, MYSQL не срабатывает запрос?

Всем привет, Класс DB конструирует такой запрос:
SELECT * FROM vizit AS v RIGHT JOIN lessons AS l ON v.lesson_id = l.id WHERE v.group_id=:v.group_id2


ecть параметры (bind):
array(1) {
  ["v.group_id2"]=>
  string(1) "3"
}


Выполняю запрос
$this->STH = $this->DBH->prepare($this->query);//тот самый запрос выше
$this->STH->execute($this->bind);//те самые параметры


НО в итоге вылетает исключение:
Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in ...


Хотя если вставить в phpMyAdmin в SQL этот запрос, то все шикарно работает...

В чем причина?
  • Вопрос задан
  • 197 просмотров
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
DevMan
@DevMan
и не должен: точка является недопустимым символом в названии плейсхолдера.
или переписывайте свой конструктор, или делайте замену точки на допустимый символ перед использованием.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Попробуй bind так:
array(1) {
  [":v.group_id2"]=>
  string(1) "3"
}
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Попробуйте убрать точку из имени параметра.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽