2015-01-30 3 views
0

Xampp 서버로 PHP Phalcon에서 작업하고 있습니다.SQLSTATE [42000] : 구문 오류 또는 액세스 위반 : 1066

나는 모델의 계층 구조를 가지고 :

UsersAbstract이 UserOfficials, UserPatients에 부모입니다.

사용자 공식은 OfficialDoctor의 부모입니다.

이름이 낙타의 경우 (예 : User_Officials)를 제외하고 데이터베이스의 테이블 이름은 위 모델과 동일합니다. UsersAbstract의 테이블은 낙타의 경우 이름이 지정되지 않습니다. 그 이유는이 프로젝트의 개발 초기에 Users_Abstract 대신 UsersAbstract로 이름을 변경하여 해결 된 오류가 발생했기 때문입니다.

어쨌든, 그래서 지금은 코드를 실행하려고하고 조각을 일으키는 원인이되는 오류가 여기에 있습니다 : 나는 가능한 사용자 목록에서 의사를 분리하려고

foreach ($available_users as $user) 
{ 
    $select_doctor = "Select " 
     ."UserOfficials.Occupation," 
     ."UsersAbstract.Full_Name," 
     ."UserOfficials.Doc_ID " 
     ."from UserOfficials join UsersAbstract " 
     ."On UserOfficials.Unique_ID = UsersAbstract.Unique_ID" 
     ." Where UserOfficials.Unique_ID = :uid:"; 

    $doctor_details = $this->modelsManager->executeQuery($select_doctor, array("uid" => $user->Unique_ID)); 

    if ($doctor_details->occupation == "Doctor") 
     $this->available_doctor = $doctor_details; 
} 

. 내가 수신하고 오류이

SQLSTATE[42000]: Syntax error or access violation: 1066 Not unique table/alias: 'usersabstract' 

UserOfficials 및 UsersAbstract 테이블 모두 서로를 연결하는 UNIQUE_ID라는 이름의 열이 있습니다.

EDIT : I는 조건

[해결]

UsersAbstract 클래스 함수 가입 첨가했다 "getSource와()"를. 이 기능은 어린이와 손자에게 과부하가 걸리지 않았습니다. 이것이 내 코드에서 오류가 관찰 된 이유입니다. 각 모델 클래스의 소스를 고유하게 설정할 때 문제가 해결되었습니다.

+0

없는 상태가 참여하지 않는다. (http://dev.mysql.com/doc/refman/5.0/en/join.html) 방식,''this_is_snake_case thisIsCamelCase' 및 바이 –

+2

를 [구 가입] '그리고 나는'모르겠다. 왜 그런가? 왜 내 데이터베이스에 들어 있나? ' –

+0

좋아, 나는 혼란스러워했다. –

답변

0

이 검색어를 입력하십시오.

$select_doctor = "Select " 
    ."UserOfficials.Occupation," 
    ."UsersAbstract.Full_Name," 
    ."UserOfficials.Doc_ID " 
    ."from UserOfficials join UsersAbstract " 
    ."ON (UserOfficials.Unique_ID = UsersAbstract.Unique_ID)" 
    ."WHERE UserOfficials.Unique_ID = :uid: AND UsersAbstract.Unique_ID = :uid:"; 
+0

시도했다. 작동하지 않습니다 –

+1

당신의 테이블 이름은'UsersAbstract'입니다, 왜 '유일 테이블/별칭 :'usersabstract'' –

+0

DB는 대소 문자를 구분하지 않습니다. XAMPP에서 테이블을 만들었을 때 나는 이것들을 모두 이와 같이 명명했지만 자동으로 소문자로 변환합니다. –

관련 문제