SQL错误:SQL语法错误

时间:2010-01-04 20:27:00

标签: php sql

错误消息:

  

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 个答案:

答案 0 :(得分:4)

$entity_ids的价值是多少?可能它是空的,因此您的查询包含无效的IN ()

答案 1 :(得分:1)

您不必连接字符串。

看起来准备好的查询在IN ({$entity_ids})

中的任何地方都有问题

回显查询字符串以检查IN语句。

答案 2 :(得分:0)

绝对查看IN语句。虽然我不熟悉MySQL,但我不相信DB2或Oracle中允许使用空IN ()子句(尽管我不会发誓)。