source

PphStorm에서 유효한 테이블을 확인할 수 없습니다.

factcode 2023. 9. 6. 22:24
반응형

PphStorm에서 유효한 테이블을 확인할 수 없습니다.

저는 지금.unable to resolve table오류는 유효한 테이블을 쿼리하는 SQL을 포함하는 php 파일에 나타납니다.

enter image description here

쿼리를 넘기면 DB 콘솔에 예상 결과가 나타나고 DB 탐색기 탭에서 데이터베이스를 확장하면 표가 표시됩니다.

코드 실행에 영향을 주지는 않지만 코드를 작성할 때 눈에 띄고, 실제 SQL 오류를 가리기 때문에 짜증이 납니다.

데이터베이스 연결을 새로고침을 시도했고, php 탭이 올바른 데이터베이스로 연결되고 있음을 확인했습니다.

2017년 2월에 나는 가야만 했습니다.

Settings > Languages & Frameworks > SQL Resolution 범위

프로젝트와 데이터베이스 링크를 추가하면 다시 올바르게 처리할 수 있습니다.

DB 연결을 처음부터 다시 만들어 봅니다(기존 연결을 삭제하고 다시 생성).


가능한 이유를 생각해 보면...나는 다음 시나리오를 생각할 수 있습니다.

  • 현재 안정적 버전(현재 2016.1.x)의 프로젝트와 함께 작업합니다.
  • 이 프로젝트에서 다음 버전(2016.2 현재)에 대한 EAP 빌드를 시도하고, 몇 가지 DB 관련 변경 사항을 변경합니다(단순 동기화 DB).
  • 안정적인 버전(2016.1.x)으로 돌아가고 새로운 버전은 DB 관련 데이터(캐시된 DB 구조 등)를 위해 더 새로운 파일 형식/버전을 사용하기 때문에 IDE는 이러한 데이터에 대해 "알 수 없는/새로운" 형식을 무시하기 시작하고 적절한 경고를 던지는 대신 "해결되지 않은 테이블" 메시지를 "조용히" 던지는 것으로 시작할 수 있습니다.

다른 생각은 없습니다.

저는 OP가 얻는 것을 얻고 있었는데 문제는 제 DB Server가 MariaDB이고 MySQL이 SQL Dialog로 선택되었다는 것입니다.

파일 > 설정 : Languages & Frameworks > SQL Dialus를 참조하십시오.

잘못된 오류 오염은 나도 미치게 합니다!

SQL 해상도 문제가 발생하면 해상도 범위(설정 -> Languages & Frameworks -> SQL 해상도 범위)를 확인합니다.

일반적으로 프로젝트 매핑이 기본적으로 '모든 데이터 소스'로 설정되어 있을 때 가장 많은 문제가 발생합니다.

다음 단계를 통해 항상 해결할 수 있습니다.

  • Project Mapping(프로젝트 매핑) 드롭다운을 클릭합니다.
  • 글로벌 'All Data Sources'(모든 데이터 소스) 설정을 해제합니다(다른 선택 항목을 사용하려면 필요).
  • 데이터베이스 연결에 대한 드롭다운 화살표를 누릅니다.
  • '모든 스키마' 확인(또는 특정 표)
  • OK(확인)를 클릭하여 설정 창을 닫습니다.

다음 구문 분석 주기 후에는 잘못된 해상도 오류가 사라져야 합니다.

위의 단계를 하나의 DB 연결에만 적용하는 것이 아니라 프로젝트의 모든 연결에 대해 수행할 수 있습니다.


때때로 사용자 지정 해결 범위를 추가하는 것도 효과가 있겠지만, 저는 성공하거나 실패할 수 있습니다.

  • 더하기 기호(오른쪽 위)를 클릭합니다.
  • 작업 중인 파일을 선택하고 '확인'을 누릅니다.
  • '해상도 범위' 열을 선택합니다.
  • '모든 데이터 원본' 선택 취소
  • 원하는 특정 DB 리소스를 선택합니다.

DB에 다시 연결하는 것은 저에게 전혀 도움이 되지 않습니다.

테이블 지정이 잘 수행됩니다...하지만 프로젝트가 성장함에 따라 매우 번거로워질 수 있습니다.


제가 어떤 범위 해상도 설정을 사용했건 간에 PHPSTorm이 제 쿼리 중 일부만 해결하는 추가적인 상황도 겪었습니다.하지만 제가 콘솔을 파일에 첨부한 후에 그들은 잘 해결되었습니다.(Help | Find Action에서 'Attach Console'을 검색합니다.'빠른 목록'이나 키맵에 추가할 수도 있습니다.)

이 답변은 특별히 phpstorm에 대한 답변이지만, IntelliJ에서 이와 같은 문제가 발생했고 위의 수정 사항 중 어떤 것도 저에게 효과가 없었습니다.내 스코프가 추가되었고 모든 것이 활성화 되었습니다.콘솔 창에서 데이터베이스를 완벽하게 조회할 수 있었고, 저는 완전히 당황스러웠습니다.

결국 데이터베이스 패널에서 다음과 같은 내용의 텍스트가 눈에 띄었습니다.0 of 4다음과 같이 보입니다.

Database panel showing the 0 of 4 message

0 of 4텍스트, 원래 연결을 설정할 때 기본 데이터베이스가 설정되었음에도 불구하고 연결에 추가된 스키마가 없다는 것을 발견했습니다.해당 페이지로 이동하면 스키마를 추가할 수 있습니다."모든 스키마", "현재 스키마" 또는 연결에 사용할 특정 데이터베이스를 선택해야 합니다.

글로벌 및 프로젝트 차원에서 사투리를 MariaDB로 변경했습니다.

enter image description here

오어

enter image description here

에서 이 하려면 2017년 이전 에는 PHPStorm이 없습니다.SQL Resolution Scopes옵션:

  1. 파일로 이동
  2. 설정으로 이동...
  3. 편집기로 이동한 다음 검사
  4. SQL 장에서 해결되지 않은 참조 선택 취소
  5. Apply(적용)를 클릭한 다음 OK(확인)

테이블 이름 앞에 데이터베이스 이름을 추가하는 것이 제 경우에 효과가 있었습니다.

예를 들면, 글을 쓰는 대신에SELECT * FROM Client,놓다SELECT * FROM database.Client.

다른 답변을 덧붙이겠습니다. 왜냐하면 저에게는 완전히 다른(부끄러운) 원인이었기 때문입니다.

데이터 원본 일반 설정(호스트, 사용자 및 암호도 설정)에 데이터베이스 이름을 추가하는 것을 깜빡했습니다.

제 경우에는 SQL 스크립트에서 오른쪽 버튼을 클릭하고 사투리를 "일반 SQL"로 변경했습니다.그것은 나에게 효과가 있었다.

먼저, 당신이 확인할 필요가 있습니다.Schemas데이터베이스를 추가했는지 확인합니다.

만약에unable to resolve table오류가 여전히 표시됩니다. 이를 해결할 수 있는 두 가지 옵션이 있습니다.

1. 편집할 수 있습니다.properties데이터 소스의 이름을 추가합니다.Database, 그러면 당신은 그것을 볼 수 있습니다.select * from table잘 통합니다.

2.반면 이렇게 sql을 사용할 수도 있습니다.select * from database.table. 저한테는 효과가 있어요.

그런데, 많은 상황에서 자동 완성은 매우 유용할 수 있습니다.

저는 이 문제를 다음과 같이 해결했습니다.

  1. CTRL + SHIFT + F10
  2. 새 쿼리 콘솔
  3. 선택 쿼리를 데이터베이스에 기록합니다. 예를 들어:
SELECT * FROM user WHERE user_email='$email' AND user_password='$password'
  1. 코드 페이지를 입력하고 쿼리에서 테이블 이름을 클릭합니다.
  2. ALT + ENTER
  3. 콘솔에서 쿼리 실행
  4. 만든 콘솔을 선택합니다.

[PHPSTORM] 설정하여 이 문제를 해결했습니다.

언어들&피처스 SQL 방언

현재 파일 추가하기path수정합니다.SQL Dialect사용 중인 서버로 사용할 수 있습니다.주의!!!!!!!!!!저의 것은 MySQL이지만 정확히는 그렇습니다.MySQL []로 전환한 후 문제를 야기합니다.generic SQL] 문제 해결!!!

언급URL : https://stackoverflow.com/questions/38334193/unable-to-resolve-valid-table-in-phpstorm

반응형