** Pdo사용을 위해선 php 버전이 5.1.0 이상 이어야 합니다**
1.PDO(PHP Data Object) 란?
- PHP에서 여러종류의 데이터 베이스에 접근할 수 있게 해주는 PHP 확장 모듈이다.(클래스)
- (MySQL, MS SQL, Oracle......)
-반면, mysql 함수나 mysqli 클래스는 MySQL 서버만을 대상
- 즉, 여러종류의 데이터베이스를 같은 방식으로 사용할 수 있게 해준다.
- Pdo는 Prepared Statement를 제공하여 SQL을 미리 데이터베이스에서 컴파일 해두고
parameter만 값만 바꿔 처리 함으로써 성능의 향상을 위해 된다. 그리고 SQL injection 방어용
으로도 사용될 수 있는데, Pdo 역시 Prepared Statement를 제공하므로 SQL injection 방어에 사용될
수 있습니다. <밑에 예시 코드에서 확인하시면 됩니다.>
2. 데이터베이스에 연결
- 데이터베이스에 접속하기 위해서 Pdo를 이용해보자.
- 먼저 pdo를 생성하여야 한다.
3.쿼리준비
- 데이터베이스와 연결후
- prepare() 메소드를 사용.
4.데이터를 바인딩, 실행
- execute() 메소드의 인수로 쿼리 파라미터에 사용할 값을 넘겨준다.
5. 결과값 가져오기
-이는 다른 예시인데 위의 예시는 그냥 insert를 하는 기능을 수행하는 함수 였기 때문이다.
-(1) fetch()
: 메소드를 한번 실행하면 쿼리결과에서 한행을 가지고 온다
반복문을 통해 처리하는 경우가 많다.
-(2) fetchAll()
: 한번에 모든 행을 가지고 올 떄 사용한다.
**fetch의 모드 구성
-1 FETCH_BOTH
- 가져오기 모드를 지정해주지 않으면 이 모드가 지정되는데,
결과 값을 가지고 올떄 칼럼이름을 키로 사용하는 배열과 칼럼의 순서를 키로 사용하는
배열 두가지 배열을 만들기 때문에 성능이 좋지않다.
-2 FETCH_ASSOC
- 칼럼명을 키로 사용하는 연관배열을 반환한다.
- $row['COLUMN_NAME']와 같은 방식으로 사용한다.
-3 FETCH_NUM
- 컬럼의 순서를 키로 사용하는 연관배열을 반환한다.
- 가져온 데이터는 $row[NUM]과 같은 식으로 사용한다.
- 이 3가지 외에도 OBJ(객체) 등이 있다....
'Web & App > Php' 카테고리의 다른 글
PHPMailer를 이용하여 서버에서 메일 보내기 (0) | 2020.10.20 |
---|---|
php - mysql 연동시 한글 깨짐 현상 (0) | 2020.08.17 |