>  기사  >  백엔드 개발  >  PHP pdo 함수 라이브러리 사용법에 대한 자세한 설명

PHP pdo 함수 라이브러리 사용법에 대한 자세한 설명

WBOY
WBOY원래의
2016-07-25 08:54:371011검색
  1. pdo->begintransaction() — 롤백 시작점 표시
  2. pdo->commit() — 롤백 종료점 표시 및 sql 실행
  3. pdo->__construct() — pdo 링크 데이터베이스의 인스턴스 생성
  4. pdo->errorcode() — 오류 코드 가져오기
  5. pdo->errorinfo() — 오류 정보 가져오기
  6. pdo- >exec() — SQL 문을 처리하고 영향을 받은 항목 수를 반환합니다.
  7. pdo->getattribute() — "데이터베이스 연결 객체"의 속성을 가져옵니다.
  8. pdo->getavailabledrivers() — 유효한 pdo 드라이브 이름 가져오기
  9. pdo->lastinsertid() — 작성된 마지막 데이터 조각의 기본 키 값 가져오기
  10. pdo->prepare() — "쿼리 개체" 생성
  11. pdo -> ;query() — SQL 문을 처리하고 "pdostatement" 반환
  12. pdo->quote() — SQL의 문자열에 따옴표 추가
  13. pdo->rollback() — return 실행 Roll
  14. pdo->setattribute() — "데이터베이스 연결 객체"에 대한 속성 설정
코드 복사

2. pdostatement

  1. pdostatement->bindcolumn() — 열을 PHP 변수에 바인딩
  2. pdostatement->bindparam() — 매개변수를 지정된 변수에 바인딩 변수 이름
  3. pdostatement->bindvalue() — 값을 매개변수에 바인딩
  4. pdostatement->closecursor() — 커서를 닫고 명령문이 다시 실행될 수 있도록 합니다.
  5. pdostatement->columncount () — 결과 집합의 열 수를 반환합니다.
  6. pdostatement->errorcode() — 명령문 핸들의 마지막 작업과 관련된 sqlstate를 가져옵니다.
  7. pdostatement->errorinfo() — 확장된 오류 정보를 가져옵니다. 명령문 핸들의 마지막 작업과 연관
  8. pdostatement->execute() — 준비된 명령문 실행
  9. pdostatement->fetch() — 결과 세트에서 다음 행을 가져옵니다
  10. pdostatement-> fetchall() — 모든 결과 세트 행을 포함하는 배열을 반환합니다
  11. pdostatement->fetchcolumn() — 결과 세트의 다음 행에서 단일 열을 반환합니다
  12. pdostatement->fetchobject() — 다음 행을 생성하고 이를 객체로 반환합니다.
  13. pdostatement->getattribute() — 명령문 속성 검색
  14. pdostatement->getcolumnmeta() — 결과 집합의 열에 대한 메타데이터를 반환합니다
  15. pdostatement-> ;nextrowset() — 다중 행 집합 문 핸들에서 다음 행 집합으로 이동합니다
  16. pdostatement->rowcount() — 마지막 SQL 문에 의해 영향을 받은 행 수를 반환합니다
  17. pdostatement->setattribute() — 명령문 속성 설정
  18. pdostatement->setfetchmode() — 이 명령문에 대한 기본 가져오기 모드 설정
코드 복사

자세한 설명 1) pdo의 데이터베이스 연결하다

  1. $dsn = 'mysql:dbname=ent;host=127.0.0.1′;
  2. $user = 'root';
  3. $password = '123456';
  4. 시도 {
  5. $dbh = new pdo($dsn, $user, $password, array(pdo::attr_pertant => true));
  6. $dbh->query ('이름 설정 utf8;');
  7. foreach ($dbh->query('select * from tpm_juese') as $row) {
  8. print_r($row);
  9. }
  10. } catch (pdoException $e) {
  11. echo '연결 실패: ' . $e->getmessage();
  12. }
코드 복사

많은 웹 애플리케이션은 데이터베이스에 대한 지속적인 연결을 사용하여 최적화됩니다. 스크립트가 끝날 때 영구 연결이 닫히지 않습니다. 대신 다른 스크립트가 동일한 ID로 연결을 요청할 때 캐시되어 재사용됩니다. 영구 연결 캐시를 사용하면 스크립트가 데이터베이스와 통신해야 할 때마다 새 연결을 배포하는 리소스 소비를 방지하여 웹 애플리케이션을 더 빠르게 만들 수 있습니다. 위 예제의 배열(pdo::attr_pertant => true)은 연결 유형을 영구 연결로 설정합니다.

자세한 설명 2) pdo에서의 거래 pdo->begintransaction(), pdo->commit(), pdo->rollback() 세 가지 메소드는 롤백 기능이 지원되는 경우 함께 사용됩니다. pdo->begintransaction() 메소드는 시작점을 표시하고, pdo->commit() 메소드는 롤백 종료점을 표시하고 sql을 실행하며, pdo->rollback()은 롤백을 수행합니다.

  1. 시도해 보세요 {
  2. $dbh = new pdo('mysql:host=localhost;dbname=test', 'root ', ”);
  3. $dbh->query('set names utf8;');
  4. $dbh->setattribute(pdo::attr_errmode, pdo::errmode_Exception);
  5. $dbh- >begintransaction();
  6. $dbh->exec("insert into `test`.`table` (`name` ,`age`)values ​​​('mick', 22);");
  7. $dbh->exec("`test`.`table` (`name` ,`age`)값에 삽입 ​​('lily', 29);");
  8. $dbh-> exec("insert into `test`.`table` (`name` ,`age`)values ​​​​('susan', 21);");
  9. $dbh->commit();
  10. } catch (예외 $e ) {
  11. $dbh->rollback();
  12. echo “실패: ” $e->getmessage();
  13. }
  14. ?>
코드 복사

이제 pdo를 통해 연결이 설정되었으므로 이전에 트랜잭션 처리를 경험한 적이 없다면 쿼리를 배포하기 전에 pdo가 트랜잭션을 관리하는 방법을 이해해야 합니다. , (이제 간단히 소개하겠습니다.) 원자성, 일관성, 격리성 및 내구성(산성)이라는 4가지 주요 기능을 제공합니다. 단계에서는 데이터베이스에 안전하게 적용되어야 하며 다른 연결에 의해 중단되지 않아야 하며 요청에 오류가 발생하면 트랜잭션 작업이 자동으로 쉽게 취소될 수도 있습니다.

트랜잭션의 일반적인 용도는 일괄 변경 사항을 "저장"한 다음 즉시 실행하는 것입니다. 이는 업데이트 효율성을 완전히 향상시키는 이점이 있습니다. 즉, 트랜잭션을 통해 스크립트를 더 빠르고 잠재적으로 더 강력하게 만들 수 있습니다(이 이점을 실현하려면 스크립트를 올바르게 사용해야 함).

안타깝게도 모든 데이터베이스가 트랜잭션을 지원하는 것은 아니므로 연결이 설정될 때 pdo는 "자동 커밋" 모드로 간주되어 실행되어야 합니다. 자동 커밋 모드는 데이터베이스가 트랜잭션을 지원하는지 또는 데이터베이스가 지원하지 않기 때문에 트랜잭션이 없는지 여부에 관계없이 실행하는 모든 쿼리에 자체 암시적 트랜잭션 처리가 있음을 의미합니다. 트랜잭션이 필요한 경우 pdo->begintransaction() 메소드를 사용하여 트랜잭션을 생성해야 합니다. 기본 드라이버가 트랜잭션을 지원하지 않으면 pdoException이 발생합니다(예외 처리 설정에 관계없이 이는 항상 심각한 오류 조건이므로). 트랜잭션 내에서 트랜잭션의 코드가 성공적으로 실행되었는지 여부에 따라 pdo->commit() 또는 pdo->rollback()을 사용하여 트랜잭션을 종료할 수 있습니다. 스크립트가 종료되거나 연결이 닫힐 때 완료되지 않은 트랜잭션이 있으면 pdo가 자동으로 롤백합니다. 이는 스크립트가 예기치 않게 종료되는 경우 안전한 솔루션입니다. 트랜잭션을 명시적으로 커밋하지 않으면 뭔가 잘못되었다고 가정하고 데이터 안전을 위해 롤백을 수행합니다.

2.

  1. // 기본 오류 표시 수준 수정
  2. $dbh->setattribute(pdo::attr_errmode, pdo: :errmode_warning);
  3. ?>
코드 복사

속성 목록: pdo::param_bool 부울 유형을 나타냅니다. pdo::param_null SQL에서 널 유형을 나타냅니다. pdo::param_int SQL에서 정수 유형을 나타냅니다. pdo::param_str SQL의 sql char, varchar 유형을 나타냅니다. pdo::param_lob SQL에서 대형 객체 유형을 나타냅니다. pdo::param_stmt 아직 지원되지 않는 SQL의 레코드 세트 유형을 나타냅니다. pdo::param_input_output 매개변수가 저장 프로시저에 대한 inout 매개변수임을 지정합니다. 또는 명시적인 pdo::param_* 데이터 유형을 사용하여 이 값을 사용해야 합니다. pdo::fetch_lazy 결과의 각 행을 객체로 반환 pdo::fetch_assoc 키 값이 첨자로 포함된 쿼리의 결과 집합만 반환됩니다. pdo::fetch_named 키 값을 첨자로 포함하는 쿼리의 결과 집합만 반환됩니다. 동일한 이름의 데이터가 배열 형태로 반환됩니다. pdo::fetch_num 숫자가 아래 첨자로 포함된 쿼리에 대한 결과 집합만 반환합니다. pdo::fetch_both 키값과 숫자가 첨자로 동시에 포함된 쿼리의 결과 집합을 반환합니다. pdo::fetch_obj 결과 세트를 객체로 반환 pdo::fetch_bound pdostatement::bindparam() 및 pdostatement::bindcolumn()에 바인딩된 값을 변수명으로 지정하고 반환합니다. pdo::fetch_column 결과 집합의 특정 열만 반환됨을 나타냅니다. pdo::fetch_class 결과 집합이 클래스 형식으로 반환됨을 나타냅니다. pdo::fetch_into 반환을 위해 데이터를 기존 클래스에 병합함을 나타냅니다. pdo::fetch_func pdo::fetch_group pdo::fetch_unique pdo::fetch_key_pair 첫 번째 키 값 아래에 테이블, 다음 숫자 아래에 테이블 형식으로 결과 집합을 반환합니다. pdo::fetch_classtype pdo::fetch_serialize 데이터를 기존 클래스에 병합하고 다시 직렬화함을 나타냅니다. pdo::fetch_props_late PHP 5.2.0부터 사용 가능 pdo::attr_autocommit true로 설정하면 pdo는 자동으로 커미션 수락을 중지하고 실행을 시작합니다. pdo::attr_prefetch 애플리케이션이 얻는 데이터 크기를 미리 설정하십시오. 모든 데이터베이스가 이를 지원하는 것은 아닙니다. pdo::attr_timeout 데이터베이스 연결 시간 초과 값 설정 pdo::attr_errmode 오류 처리 모드 설정 pdo::attr_server_version pdo 연결의 서버측 데이터베이스 버전을 나타내는 읽기 전용 속성 pdo::attr_client_version PDO 연결의 클라이언트 PDO 드라이버 버전을 나타내는 읽기 전용 속성 pdo::attr_server_info pdo에 연결된 서버의 메타 정보를 나타내는 읽기 전용 속성 pdo::attr_connection_status pdo::attr_case pdo::case_*의 내용을 통해 열 형식을 작동합니다. pdo::attr_cursor_name 포인터 이름을 가져오거나 설정합니다. pdo::attr_cursor 포인터 유형 설정, pdo는 이제 pdo::cursor_fwonly 및 pdo::cursor_fwonly를 지원합니다. pdo::attr_driver_name 사용된 PDO 드라이버의 이름을 반환합니다. pdo::attr_oracle_nulls 반환된 빈 문자열을 SQL의 null로 변환합니다. pdo::attr_지속적 기존 연결 가져오기 pdo::attr_statement_class pdo::attr_fetch_catalog_names 반환된 결과 집합에서 필드 이름 대신 사용자 지정 카탈로그 이름을 사용합니다. pdo::attr_fetch_table_names 반환된 결과 집합에서 필드 이름 대신 사용자 정의 테이블 이름을 사용합니다. pdo::attr_stringify_fetches pdo::attr_max_column_len pdo::attr_default_fetch_mode PHP 5.2.0부터 사용 가능 pdo::attr_emulate_prepares PHP 5.1.3부터 ​​사용 가능합니다. pdo::errmode_silent 오류가 발생하면 오류 메시지가 보고되지 않습니다. 이는 기본값입니다. pdo::errmode_warning 오류 발생 시 PHP e_warning 메시지 보내기 pdo::errmode_Exception 오류가 발생하면 pdoException을 발생시킵니다. pdo::케이스_자연 응답 열의 기본 표시 형식 pdo::case_lower 열 이름을 소문자로 강제 적용 pdo::케이스_상부 열 이름을 대문자로 강제 적용 pdo::null_natural pdo::null_empty_string pdo::null_to_string pdo::fetch_ori_next 결과 집합에서 다음 데이터 행을 가져옵니다. 포인터 함수를 사용할 때만 유효합니다. pdo::fetch_ori_prior 결과 집합에서 이전 데이터 행을 가져옵니다. 포인터 함수가 있는 경우에만 유효합니다. pdo::fetch_ori_first 결과 집합에서 데이터의 첫 번째 행을 가져옵니다. 포인터 함수를 사용할 때만 유효합니다. pdo::fetch_ori_last 결과 집합에서 데이터의 마지막 행을 가져옵니다. 포인터 함수를 사용할 때만 유효합니다. pdo::fetch_ori_abs 결과 집합에서 특정 데이터 행을 가져옵니다. 포인터 함수가 있는 경우에만 유효합니다. pdo::fetch_ori_rel 결과 집합에서 현재 행 다음 행의 데이터를 가져옵니다. 포인터 함수가 있는 경우에만 유효합니다. pdo::cursor_fwonly 뒤로 전용 포인터 작업 개체 만들기 pdo::cursor_scroll 포인터 작업 개체를 만들고 pdo::fetch_ori_*의 내용을 전달하여 결과 집합을 제어합니다. pdo::err_none(문자열)

오류가 없을 때 오류 메시지 설정 pdo::param_evt_alloc 할당 이벤트 pdo::param_evt_free 할당 해제 이벤트 pdo::param_evt_exec_pre 준비된 명령문을 실행하기 전에 트리거되는 이벤트입니다. pdo::param_evt_exec_post 이벤트는 이후에 준비된 명령문 실행으로 트리거됩니다. pdo::param_evt_fetch_pre 결과 집합에서 결과를 가져오기 전에 트리거되는 이벤트입니다. pdo::param_evt_fetch_post 결과 집합에서 결과를 가져오기 위해 이후에 이벤트가 트리거되었습니다. pdo::param_evt_normalize 드라이버가 매개변수 이름을 정규화할 수 있도록 바인딩된 매개변수 등록 중에 이벤트가 트리거되었습니다.



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.