programing

PphpStorm이 여러 데이터베이스 연결에 대한 열을 확인할 수 없습니다.

bestprogram 2023. 7. 21. 21:46

PphpStorm이 여러 데이터베이스 연결에 대한 열을 확인할 수 없습니다.

저는 PphpStorm을 사용한 지 일주일 정도밖에 되지 않아서, 지금까지 데이터베이스 연결을 설정한 후 오류 없이 모든 SQL 쿼리가 정상적으로 작동하고 있습니다.이 현재 코드는 실제로 두 번째 데이터베이스(하나는 특정 제품에 대한 사용자용)를 사용하므로 데이터베이스 탭에도 연결을 추가했지만 여전히 '열을 확인할 수 없음' 경고가 표시됩니다.

어떤 데이터베이스를 보고 있는지 확인할 수 있는 방법이 있습니까?여러 데이터베이스에서 작동합니까?아니면 제가 다른 잘못을 했나요?

아래 오류:

error message

$this->db->setSQL("SELECT T1.*, trunc(sysdate) - trunc(DATE_CHANGED) EXPIRES FROM " . $this->tableName . " T1 WHERE lower(" . $this->primaryKey . ")=lower(:id)")

또한 일부 사용자가 매개 변수 패턴에 문제가 있어 이 오류가 발생한 것처럼 보이는 데이터베이스 설정 창도 여기에 있습니다.

database settings

PphpStorm 10.0.3 사용

에서 SQL 해상도 범위를 설정할 수 있습니다.File -> Settings -> Languages & Frameworks -> SQL Resolution Scopes.

enter image description here

이렇게 하면 전체 프로젝트에 대한 기본값을 제공할 수 있으며 프로젝트의 특정 경로에 대한 특정 매핑을 선택적으로 정의할 수 있습니다.

따라서 위의 변수에 설정되어 있더라도 테이블 이름을 변수로 읽을 수 없다는 것이 간단한 답변입니다.저는 PphpStorm이 그것을 해결할 수 있다고 생각했습니다.오류를 제거하는 유일한 방법은 SQL 검사를 완전히 끄거나(프로젝트 전반에 걸쳐 사용하기 때문에 이상적이지 않음이 분명함) 문서 설명을 사용하여 이 문에 대해 일시적으로 사용하지 않도록 설정하는 것입니다.

/** @noinspection SqlResolve */

@var 또는 @method와 같이 더 집중된 의견을 찾아 PHPstorm에게 테이블이 무엇이어야 하는지 알려주어 나머지 진술을 계속 검사할 수 있기를 희망했습니다.다음과 같은 것:/** @var $this->tableName TABLE_IM_USING */아마도 미래에 JetBrain은 그것을 추가하거나 위의 변수 3줄을 볼 수 있을 만큼 PphpStorm을 영리하게 만들 것입니다.

를 사용하는 대신 Nowdoc/Herdoc을 사용할 수도 있습니다.

/** @noinspection SqlResolve */

예는 다음과 같습니다.

$name = "your name";
$query = <<<SQL
SELECT * FROM user WHERE name LIKE "%$name%" ORDER BY id
SQL;

두 가지 방법 모두 경고가 사라집니다.

언급URL : https://stackoverflow.com/questions/36788799/phpstorm-unable-to-resolve-column-for-multiple-database-connections