@tryvols
Front-End разработчик

Почему PDO выдает ошибку?

Запрос:
SELECT * FROM `companys` 
    INNER JOIN `countrys` USING(country_id) 
    INNER JOIN `prices` ON `companys`.`company_id` = `prices`.`company_id` 
    INNER JOIN `service_description` USING(description_id) 
WHERE 
    `RU` = "1" AND 
    `companys`.`security` = "YES" AND 
    SOME( 
        SELECT `price` FROM `prices` 
            INNER JOIN `service_description` USING(description_id) 
        WHERE `service_name` = "?" 
    ) > "?"


Данные:
array(2) { [0]=> string(9) "dedic_min" [1]=> string(2) "10" }


Ошибка:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( SELECT `price` FROM `prices` INNER JOIN `service_d' at line 1'
  • Вопрос задан
  • 672 просмотра
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
При чём тут PDO, если ошибку вам отдаёт MySQL?

Синтаксис оператора SOME: dev.mysql.com/doc/refman/5.7/en/any-in-some-subque...
operand comparison_operator SOME (subquery)

У вас перез some ни операнда ни оператора. Парсер закономерно удивляется. Судя по месту ошибки, парсер посчитал SOME именем столбца.

Что вы хотели получить этим условием?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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