PDO(PHP Data Objects) 확장은 PHP가 데이터베이스에 액세스하기 위한 가볍고 일관된 인터페이스를 정의합니다.
PDO는 데이터 액세스 추상화 계층을 제공합니다. 즉, 어떤 데이터베이스를 사용하든 동일한 기능(메서드)을 사용하여 데이터를 쿼리하고 얻을 수 있습니다.
PDO는 PHP5.1과 함께 출시되었으며 PHP5.0의 PECL 확장에서도 사용할 수 있지만 이전 PHP 버전에서는 실행할 수 없습니다.
PHP의 phpinfo() 함수를 통해 PDO 확장이 설치되었는지 확인할 수 있습니다.
Unix 또는 Linux에서는 다음 확장자를 추가해야 합니다.
확장자=pdo.so
PDO와 모든 주요 드라이버는 공유 확장으로 PHP와 함께 제공됩니다. 활성화하려면 php.ini 파일을 편집하고 다음 확장을 추가하세요.
확장자=php_pdo.dll또한 다음에 해당하는 다양한 데이터베이스 확장이 있습니다.
;확장=php_pdo_firebird.dll;확장=php_pdo_informix.dll;확장=php_pdo_mssql.dll;확장=php_pdo_mysql.dll;extensio n=php_pdo_oci.dll;확장=php_pdo_oci8.dll;확장=php_pdo_odbc.dll;확장=php_pdo_pgsql.dll;확장=php_pdo_sqlite.dll
이러한 구성을 설정한 후에는 PHP 또는 웹 서버를 다시 시작해야 합니다.
다음으로 구체적인 예를 살펴보겠습니다. 다음은 PDO를 사용하여 MySql 데이터베이스에 연결하는 예입니다.
<?php$dbms='mysql'; //데이터베이스 호스트 이름 $dbName='test'; //데이터베이스 연결 사용자 이름 $pass=''; //해당 비밀번호 $dsn="$dbms:host=$host;dbname=$dbName"; try { $dbh = new PDO($dsn, $user, $pass); //PDO 객체 초기화 echo "연결 성공<br/>" /*$row)로 foreach ($dbh->query('SELECT * from FOO') 검색 작업을 수행할 수도 있습니다) { print_r($row) ; //echo($GLOBAL)를 사용하여 이 값을 볼 수 있습니다.} */ $dbh = null;} catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "<br/>");}//기본적으로 이는 긴 연결이 아닙니다. 데이터베이스에 대한 긴 연결이 필요한 경우 끝에 매개변수를 추가해야 합니다. array(PDO::ATTR_PERSISTENT => true) 다음과 같습니다: $db = new PDO( $dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));?>
매우 간단합니다. 다음으로 PHP PDO의 구체적인 지침을 자세히 살펴보겠습니다.
미리 정의된 상수
PHP PDO 연결 연결 관리
PHP PDO 트랜잭션 및 자동 커밋
PHP PDO 준비문 및 저장 프로시저
PHP PDO 오류 및 오류 처리
PHP PDO 대형 객체(LOB)
PDO 클래스:
PDO::beginTransaction — 트랜잭션 시작
PDO::commit — 트랜잭션 커밋
PDO::__construct — 데이터베이스 연결을 나타내는 PDO 인스턴스를 만듭니다.
PDO::errorCode — 데이터베이스 핸들의 마지막 작업과 연관된 SQLSTATE를 가져옵니다.
PDO::errorInfo — 마지막 데이터베이스 작업의 오류 정보를 반환합니다.
PDO::exec — SQL 문을 실행하고 영향을 받은 행 수를 반환합니다.
PDO::getAttribute — 데이터베이스 연결의 속성을 검색합니다.
PDO::getAvailableDrivers — 사용 가능한 드라이버 배열을 반환합니다.
PDO::inTransaction — 트랜잭션 내에 있는지 확인
PDO::lastInsertId — 마지막으로 삽입된 행의 ID 또는 시퀀스 값을 반환합니다.
PDO::prepare — 실행할 SQL 문을 준비하고 PDOStatement 객체를 반환합니다.
PDO::query — SQL 문을 실행하고 결과 집합으로 이해할 수 있는 PDOStatement 개체를 반환합니다.
PDO::quote — SQL 문의 문자열에 따옴표를 추가합니다.
PDO::rollBack — 트랜잭션 롤백
PDO::setAttribute — 속성 설정
PDO문 클래스:
PDOStatement::bindColumn — 열을 PHP 변수에 바인딩
PDOStatement::bindParam — 지정된 변수 이름에 매개변수 바인딩
PDOStatement::bindValue — 값을 매개변수에 바인딩
PDOStatement::closeCursor — 명령문을 다시 실행할 수 있도록 커서를 닫습니다.
PDOStatement::columnCount — 결과 집합의 열 수를 반환합니다.
PDOStatement::debugDumpParams — SQL 전처리 명령을 인쇄합니다.
PDOStatement::errorCode — 마지막 명령문 핸들 작업과 연관된 SQLSTATE를 가져옵니다.
PDOStatement::errorInfo — 마지막 명령문 핸들 작업과 관련된 확장 오류 정보를 가져옵니다.
PDOStatement::execute — 준비된 명령문을 실행합니다.
PDOStatement::fetch — 결과 세트에서 다음 행을 가져옵니다.
PDOStatement::fetchAll — 결과 세트의 모든 행을 포함하는 배열을 반환합니다.
PDOStatement::fetchColumn — 결과 세트의 다음 행에서 단일 열을 반환합니다.
PDOStatement::fetchObject — 다음 행을 가져와 객체로 반환합니다.
PDOStatement::getAttribute — 명령문 속성 검색
PDOStatement::getColumnMeta — 결과 세트의 열에 대한 메타데이터를 반환합니다.
PDOStatement::nextRowset — 다중 행 집합 문 핸들에서 다음 행 집합으로 이동합니다.
PDOStatement::rowCount — 이전 SQL 문의 영향을 받은 행 수를 반환합니다.
PDOStatement::setAttribute — 명령문 속성 설정
PDOStatement::setFetchMode — 명령문의 기본 가져오기 모드를 설정합니다.