PHP PDO(PHP 5.1.0부터 제공)를 사용하게 되면 같은 코드로 여러 종류(예>MySQL, SQLite, 기타 등등)의 데이터베이스(DateBase) 연결에 사용할 수 있게 된다.
그리고 무엇보다도 SQL 인젝션(SQLInject) 공격을 걱정하지 않아도 된다.
중요> PHP 5.5 부터는 mysql_connect(), mysql_query() 등과 같은 mysql_ 로 시작하는 함수는 사용할 수 없게 되므로 PDO 또는 MYSQLi를 사용하도록 미리 준비하는 것을 권장한다.
[PDO-MySQL 모듈 설치 소스 확인하기]
PDD-Mysql 모듈은 기본 제공으로 PHP 설치 소스 경로로 이동한 후 진행한다.
(없으면 다운 받는다.)
참고>PDO-Mysql 모듈 다운받기
]# wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
]# tar xvzf PDO_MYSQL-1.0.2.tgz
]# cd PDO_MYSQL-1.0.2
[PDO 설치 학인]
phpinfo()를 통해서 확인할 수 있다.
... 생략 ...
또는
]# /usr/local/php/bin/php -i | grep PDO
[PDO-Mysql 모듈 추가 설치] : PHP 설치 Configure 옵션에 추가되지 않는다.
php 설치 소스로 이동한다.
]# cd /usr/local/src/apm/
]# ll
만일을 대비해 백업을 해둔다.
]# mkdir php-5.4.2_bk
]# cp -r php-5.4.2/* php-5.4.2_bk/
PDO-Mysql 모듈이 있는 위치로 이동한다.
]# cd php-5.4.2/ext/pdo_mysql/
]# ll
“phpize” 명령어를 사용해서 확장모듈(여기서는 PDO-Mysql)을 위한 빌드 환경을 만든다.
]# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 22100525
참고>phpize 실행파일이 해당위치에 없다면 find / -name phpize를 실행해서 찾는다.
참고>phpize를 실행하면 configure 파일 및 기타 파일들이 생성된다.
- Cannot find autoconf 오류 발생시
컴파일을 한다.
]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
]# make
]# make install
모듈 생성 확인
컴파일이 완료되면 /usr/local/php/lib/php/extensions/no-debug-zts-20100525/ 와 비슷한 경로를 찾은 후 pdo_mysql.so 파일이 생성되었는지 확인한다.
참고> 기존에 다른 확장 모듈을 추가했다면 다른 모듈 파일도 같은 경로에 있는 것을 확인할 수 있다.
PDO-Mysql 모듈 연동
php.ini 파일을 아래와 같이 수정한다.
]# vi /usr/local/apache/conf/php.ini
extension_dir = “/usr/local/php/lib/php/extensions/no-debug-zts-20100525” <- 변경
extension=pdo_mysql.so <- 추가
apache를 재 시작한다.
]# service httpd restart
phpinfo()를 이용해서 PDO-Mysql이 활성화되었는지 확인한다.
]# /usr/local/php/bin/php -i | grep PDO
더보기>
- php pdo db 연결 / pdo db connection / pdo database 접속 / pdo db open
- php pdo limit 사용법 / pdo query limit offset / pdo mysql limit / pdo bindValue
- php pdo like 사용법 / pdo query like / pdo mysql like / pdo bindValue