2014-04-29 3 views
1

새 사이트를 만드는 중이며 지금까지 문제가 없습니다. 관리자 패널에 계속 액세스 할 수 있지만 어제이 메시지가 홈페이지 대신 나타났습니다.오류 1064 SQL 구문에 오류가 있습니다.

1064 - SQL 구문에 오류가 있습니다. ') AND (a.publish_up ='0000-00-00 00:00:00 '또는 a.publish_up < ='2014-04-29 15 '에 가까운 구문을 사용하려면 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. : 줄 1 SQL에서 2 '=

SELECT 
    a.*, 
    c.name as categoryname, 
    c.id as categoryid, 
    c.alias as categoryalias, 
    c.params as categoryparams 
FROM 
    am4xy_k2_items as a 
    LEFT JOIN am4xy_k2_categories c ON c.id = a.catid 
WHERE 
    a.published = 1 
    AND a.access IN(1,1) 
    AND a.trash = 0 
    AND c.published = 1 
    AND c.access IN(1,1) 
    AND c.trash = 0 
    AND a.catid IN() 
    AND (a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2014-04-29 15:25:15') 
    AND (a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2014-04-29 15:25:15') 
ORDER BY a.created ASC 
LIMIT 0, 16 

어떤 아이디어

+0

빈'IN()'절이 바로 튀어 나오게됩니다. 'catid IN (...) '변수에 변수가있는 경우 변수가 비어 있지 않은지 확인해야합니다. –

+0

감사합니다. 이러한 편집은 어디서합니까? 나는 이것에 익숙하지 않고 아직도 잃어버린 자다. – user3585935

+0

편집 창에있을 때 줄 바꿈과 들여 쓰기를 포맷해야합니다. 그렇지 않으면 서식이 지정되지 않은 오류 메시지에서 너의 것을 꺼냅니다. 코드 블록을 강조 표시하고'ctl-k'를하거나 편집기에서'{}'도구 모음을 클릭하여 질문에 적절하게 태그가 달린 경우 자유 구문 강조를 얻을 수있는 코드 블록 (4 칸 들여 쓰기)을 만드십시오. –

답변

1

IN()가 비어있을 수 없습니다 : 당신이있을 때 그것을 누락 된 값을 추가하거나 제거하거나 필요

AND a.catid IN() 

없음.

+0

누락 된 값이 무엇인지 어떻게 알 수 있습니까? – user3585935

+0

해당 쿼리는 어떻게 생성됩니까? 프로그래밍 언어에서 역동적입니까? 그렇다면 쿼리가 생성 될 때 수행되어야합니다. –

+0

확실치 않습니다. Joomla 3.0 사이트에 있습니다. PHP를 통해 동적으로 생성 된 것으로 가정하고 있지만 완전히 틀릴 수 있습니다. – user3585935

0

Joomla!의 Cagenda 구성 요소 폼의 필터 섹션에 "Categories"라는 필수 입력란을 비워 뒀습니다.

그래서 시스템은 자동으로 SQL을 "IN"문 안에 값이없는 AND a.catid IN()으로 빌드합니다.

모든 필드에 필수 값이 있는지 확인하십시오.)

관련 문제