1

이 질문을 게시하기 전에, 내가 잘 할 수있는 모든 응답을 읽었습니다. 비슷하지만, 어떤 것도 나의 특별한 문제를 언급하지 못했다.MySQL 젠드 프레임 워크 - SQLSTATE [42000] : 구문 오류 또는 액세스 위반 : 1064

Zend_Db_Table_Abstract를 확장하는 테이블 클래스가 있습니다.

SELECT `c`.* FROM `categories` AS `c` 
INNER JOIN `events` AS `e` ON c.events_idEvent = e.idEvent 
WHERE (e.idEvent = '1') 
: 나는 SQL 개체를 에코 때

 $getCategoryResults = $this->select(); 
     $getCategoryResults->setIntegrityCheck(false) 
          ->from(array('c'=> 'categories', '*')) 
          ->join(array('e' => 'events'),'c.events_idEvent = e.idEvent', array()) 
          ->where("e.idEvent = ?", $idEvent); 

, 나는이 얻을 : 모델에서, 나는이 같은 테이블 ID 기준) (가입 방법 및 사용하여 단일 행을 반환하기 위해 노력하고있어 나는이 형식을 사용하는 경우,

->where("e.idEvent = $idEvent"); 

내 출력은 이상하게도

, "WHERE (e.idEvent = 1)". 이 값은 틱 (tick)으로 묶이지 않지만 MySQL에서는 작동합니다.

idCategory 유형 displayOrder 설명 localStartTime events_idEvent
1 개인 1 5K 실행이/2010-02-18 23시 59분 59초 1
2 팀 2 5K 팀을 걸어 : 나는 phpMyAdmin을에서 쿼리를 실행하면,이 얻을 카테고리 2010-02-18 23 : 59 : 591 1

내가 기대했던 것입니다. 내가 브라우저에서 내 응용 프로그램을 실행할 때, 나는이 추함을 얻을 :

SQLSTATE [42000] : 구문 오류 또는 액세스 위반 : 1064 당신은 당신의 SQL 구문에 오류가 있습니다; 근처 사용할 수있는 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인 'c을 선택합니다. * INNER c.events_id ON e AS events 가입 c AS categories로부터'1

나는 모든 체크 한 줄에서 내가 생각할 수있는 자원. 잘만되면, SO 전문가의 결합 된 awesomeness는 이것을 나의 마지막 중지로 만들 것이다. : D

답변

1

오류 진술의 두 번째 부분을 확인하십시오. mysql을 다른 곳에서 사용하면 액세스 위반이 발생할 가능성이 큽니다.

1

내게 알 수없는 이유로, 응용 프로그램은 my $ pageResult 변수가 설정되지 않았다고 믿었습니다. 나는 다음과 같은 코드로는 isset()을 추가 한 후이 발견 :

 try { 
     $getCategoryResults = $this->select(); 
     $getCategoryResults->setIntegrityCheck(false) 
          ->from(array('c'=> 'categories', '*')) 
          ->join(array('e' => 'events'),'c.events_idEvent = e.idEvent', array()) 
          ->where("e.idEvent = ?", $idEvent); 

      if (isset($pageResult)) { 
      $pageResult .= $getCategoryResults; 
      } 
      else { 
      $pageResult = $getCategoryResults; 
      } 

    } catch (Exception $e) { 
     echo ("Could not find matching categories for event id = $idEvent"); 
    } 

문제는 물론, 그 뒤에 숨어 다음 문제를 공개하는 멀리 갔다. : D

+2

원래 질문에 pageresult 변수를 언급하지 않았습니다. 오류가 발생하는 이유를 알아 내려고 15 분을 보냈기 때문에 문제가 해결되어서 다행이었습니다. 피곤하면 대개 이런 식으로 놓칩니다. 어쩌면 좀 쉬어야 할 때인가? :) – rvdavid