JetBrains
사의 PhpStorm
을 이용하여 생활코딩 이고잉 님의 PHP & MySQL 강의를 수강중이었다. 강의에서는 Atom
즉 텍스트 에디터를 사용하셨지만, 나는 IDE
를 사용하여 개발하고 싶어 PhpStorm
을 사용한다.
수강 도중 테이블의 이름에 빨간 밑줄과 함께 Unable to resolve table '테이블 이름'
오류가 발생해서 해결하는 과정을 기록하려 한다.
이 오류는 그냥 넘어가도 되지만 SQL Dialect
를 설정해두면 장점이 많다. 해당 내용은 아래 본문에 서술하도록 하겠다.
함수형으로 DataBase
와 연결하는 것을 불호한다. 그래서 강의와 다르게 PHP Data Object
줄여서 PDO
를 이용하여 작성하여 강의 코드와 조금 다를 수 있다.
해당 오류는 DataBase
에 대한 설정을 해주지 않았기 때문이다.
오류를 예방 또는 해결할 수 있도록 내가 사용한 방법을 서술하겠다.
SQL Dialect
설정하기 - DBMS
선택오류 발생 전에 DataBase
와 연결하지 않은 경우 작성한 쿼리문에 SQL dialect is not configured.
라는 경고가 뜬다.
여기서 Change dialect to...
를 클릭하면 SQL Dialects
창이 나오는데 여기서 해당 IDE
의 프로젝트나 각 파일마다 SQL Dialect
를 선택할 수 있다.
간단히 설명하면 DBMS
를 선택하는 창이라고 볼 수 있다. 만약 해당 프로젝트에서 MariaDB
만 사용한다면 상단의 Project SQL Dialect
에서 MariaDB
만 선택해서 굳이 파일마다 DBMS
를 선택해줄 필요가 없다.
DataBase(Schema)
선택프로젝트의 SQL Dialect
설정 시 경고 메시지는 사라지지만 topic
이라는 테이블 이름이 흰색으로 되어있다.
여기서 DataBase(Schema)
를 선택해주면 테이블 이름이 주황색으로 바뀐다. 스키마 선택 방법은 아래와 같다.
편집창에서 마우스 오른쪽
클릭 -> Attach Session
클릭
DataBase Server
를 등록해 놓으면 해당 DB Server
가 목록에 뜬다. @localhost
-> console
선택
선택 후 아래 그림처럼 편집기 상단에 데이터베이스를 위한 네비게이션(?)이 열린다.
우측 상단에서 <schema>
를 클릭해 자신이 사용할 DataBase(Schema)
를 선택한다.
생활코딩 강의에서 opentutorials
라는 DataBase
를 만들었으므로 이걸 선택했다.
연결 후 위처럼 테이블 이름이 주황색으로 바뀌고, 마우스를 올려놓으면 해당 테이블의 대한 정보를 알 수 있다.
SELECT
문 바로 뒤 애스터리스크*
위에 마우스를 올려놓으면 어떠한 요소가 반환되는지도 알 수 있다.
이것으로 DataBase
와 해당 소스파일이 연동되어있다는 것을 확인할 수 있다.
따라서 해당 테이블에 없는 column
을 쿼리문에 작성하면 오류가 발생한다.
DataBase
가 해당 프로젝트 또는 파일에 연동되어있지 않아서 발생
DataBase
등록 후DBMS
선택(SQL Dialect 설정)
- 해당
DBMS
의DataBase(Schema)
선택
해당 오류를 해결하고나서 JetBrains
의 IDE
가 DB
와 연동할 경우 여러 장점이 있다는 것을 알게되었다.
database console
로SQL
을 실행하여 바로 결과 확인 가능SQL
에 대한 코드 검증
- 테이블, column 존재 유무 검사
- 위험한
query
문 실행 방지 => 고의적으로 실행 시Execute
클릭SQL
문법 검사, 자동 완성