본문 바로가기

SQL

(2)
[PHP] PDO로 쿼리하기 이전의 PDO로 데이터베이스 접속하기에 이어 이번에는 PDO를 사용하여 쿼리를 보내어 보겠습니다. 쿼리하는 방법으로는 크게 2가지 방법이 있는데, 첫 번째는 단순하게 완성된 SQL문을 보내서 결과를 받는 것과 Prepared statement로 코드 단에서 SQL문의 뼈대만 먼저 보내고 이후에 조건에 들어가는 인자들을 넘기는 것으로 SQL을 실행하는 방법이 있습니다. 여기서는 이 2가지 방법을 모두 설명할 예정입니다. PHP에서 PDO로 DBMS에 접속하는 방법에 대해서는 이전 글을 참조하시기 바랍니다. 예제를 보는게 가장 이해하기 쉬우니 간단한 테이블을 하나 만들고 입력, 조회하는 PHP 코드를 만들어 보겠습니다.
표준 SQL에서 문자열 상수 안의 single quote SQL에서 문자열 상수를 사용할 때 작은 따옴표(single quote)로 원하는 문자열을 감싸는 것으로 표기합니다. 하지만 문자열 내부에 작은 따옴표가 존재한다면 파싱 때 문제의 소지가 있으므로 이스케이핑이란 방법으로 특수한 처리를 해야합니다. 다른 프로그래밍 언어를 공부하셨다면 문자 이스케이핑을 하기 위해서 백슬래시(\)를 가장 먼저 떠올리실겁니다. 하지만 SQL에서는 다릅니다. 정확히는 SQL 표준은 백슬래시를 사용한 이스케이프를 허용하지 않습니다. 다만 여러 RDBMS 구현체들이 사용자의 편의성과 이러저러한 이유로 백슬래시로도 이스케이핑이 가능하도록 지원하고 있습니다. 표준에서 백슬래시로 이스케이핑을 지원하지 않는 이유는 인코딩의 차이로 인해 DBMS가 백슬래시를 잘못 인식할 경우 보안적으로 문제..