Ошибка SQL: ошибка синтаксиса SQL - PullRequest
0 голосов
/ 04 января 2010

Сообщение об ошибке:

Ошибка SQL: в синтаксисе SQL есть ошибка; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'AND domain =' ard.qc 'и snapshot_id = 2010 AND locale =' en_US '' в строке 1

SQL-запрос:

SELECT 
  entity_id, 
  content_id
FROM collateral_cms_mapping 
WHERE entity_id IN ({$entity_ids}) 
  AND domain = '{$this->getSite()->getInternalId()}' 
  AND snapshot_id = {$this->getSnapshotDao()->getCurrentSnapshot()} 
  AND locale = '{$locale}'

Фактический SQL после замены значения и конкатенации строк:

    SELECT 
      entity_id, 
      content_id 
    FROM
      collateral_cms_mapping 
   WHERE 
     entity_id 
     IN 
      () 
     AND 
      domain = 'ard.qc' 
     AND 
      snapshot_id = 2009 
     AND 
      locale = 'en_US'

Есть предложения?

Ответы [ 3 ]

4 голосов
/ 04 января 2010

Какое значение $entity_ids? Возможно, он пуст, поэтому ваш запрос содержит IN (), что недопустимо.

1 голос
/ 04 января 2010

Вам не нужно объединять свои строки.

Похоже, что подготовленный запрос неисправен где-то в IN ({$entity_ids}).

Выведите строку запроса, чтобы проверить оператор IN.

0 голосов
/ 04 января 2010

Обязательно посмотрите на оператор IN. Хотя я не знаком с MySQL, я не считаю, что пустое предложение IN () разрешено в DB2 или Oracle (хотя я не буду клясться в этом).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...