PDO

younghyun·2022년 8월 20일
0

PDO

여러가지 데이터베이스를 제어하는 방법을 표준화시킨 것.(PHP 확장모듈) PDO를 쓰면 같은 방법으로 여러 DB를 제어할 수 있음.

Prepared Statements

동일한(또는 유사한) SQL 문을 고효율로 반복적으로 실행하는 데 사용되는 기능.
PDO는 Prepared Statement를 제공하여 SQL을 미리 데이터베이스에서 컴파일 해두고, parameter 값만 바꿔 처리 함으로써 성능 향상.

준비된 문은 기본적으로 아래와 같이 작동.

  1. Prepare(준비) : SQL문 템플릿이 완성돼 데이터베이스로 전송된다. 매개변수라 하는 특정 값은 지정되지 않은 상태로 남는다("?" 레이블이 지정됨). 예를 들어 INSERT INTO table VALUES(?, ?, ?) 형태로 사용한다.
  2. DB는 SQL문 템플릿에서 쿼리 최적화를 파싱, 컴파일 및 수행하며 결과를 실행하지 않고 저장함.
  3. Execute(실행) : 나중에 응용 프로그램은 값을 매개변수에 바인딩하고 DB는 명령문을 수행함. 응용 프로그램은 다른 값으로 원하는 만큼 문(Statements)을 실행할 수 있음.

장점

  1. 준비된 명령문은 쿼리에 대한 준비가 한 번만 수행되므로 구문 분석 시간이 줄어듦.(Statements가 여러 번 실행되더라도)
  2. 바인딩된 매개변수는 전체 쿼리가 아닌 매번 매개변수만 보내야 하므로 서버의 대역폭을 최소화 함.
  3. 준비된 명령문은 나중에 다른 프로토콜을 사용해 전송되는 매개변수 값을 올바르게 이스케이프할 필요가 없기 때문에, SQL 삽입에 대해 매우 유용함. 원본 Statements 템플릿이 외부 입력에서 파생되지 않은 경우 SQL 주입이 발생할 수 없음.

참고
https://onlyfor-me-blog.tistory.com/311
https://opentutorials.org/module/6/5155

profile
선명한 기억보다 흐릿한 메모

0개의 댓글