php教程 PHP开发 PHP PDO 함수 라이브러리에 대한 자세한 설명

PHP PDO 함수 라이브러리에 대한 자세한 설명

Jan 06, 2017 pm 02:31 PM

현재 '데이터베이스 추상화 계층'을 구현하려면 갈 길이 멀습니다. PDO와 같은 '데이터베이스 액세스 추상화 계층'을 사용하는 것은 좋은 선택입니다.

PDO에는 사전 정의된 세 가지 클래스가 포함되어 있습니다.

PDO에는 사전 정의된 세 가지 클래스인 PDO, PDOStatement 및 PDOException이 포함되어 있습니다.

1.PDO

PDO->beginTransaction() — 롤백 시작 지점 표시
PDO->commit() — 롤백 종료 지점 표시 및 SQL 실행
PDO->__construct() — PDO 링크 데이터베이스의 인스턴스 생성
PDO->errorCode() — 오류 코드 가져오기
PDO->errorInfo() — 오류 정보 가져오기
PDO- >exec() — SQL 문을 처리하고 영향을 받은 항목 수를 반환합니다.
PDO->getAttribute() — "데이터베이스 연결 객체"의 속성을 가져옵니다.
PDO->getAvailableDrivers() — 유효한 PDO 드라이브 이름 가져오기
PDO->lastInsertId() — 마지막으로 작성된 데이터 조각의 기본 키 값 가져오기
PDO->prepare() — "쿼리 개체" 생성
PDO -> ;query() — SQL 문을 처리하고 "PDOStatement"를 반환합니다.
PDO->quote() — SQL의 문자열에 따옴표를 추가합니다.
PDO->rollBack() — return 실행 Roll
PDO->setAttribute() — "데이터베이스 연결 개체"에 대한 속성 설정

2. PDOStatement

PDOStatement->bindColumn() — 열을 PHP에 바인딩 변수
PDOStatement->bindParam() — 지정된 변수 이름에 매개변수를 바인딩합니다
PDOStatement->bindValue() — 값을 매개변수에 바인딩
PDOStatement->closeCursor() — 닫습니다. 커서를 사용하여 명령문을 다시 실행할 수 있습니다.
PDOStatement->columnCount() — 결과 집합의 열 수를 반환합니다.
PDOStatement->errorCode() — 마지막 작업과 관련된 SQLSTATE를 가져옵니다. 명령문 핸들
PDOStatement->errorInfo() — 명령문 핸들의 마지막 작업과 관련된 확장 오류 정보를 가져옵니다.
PDOStatement->execute() — 준비된 명령문을 실행합니다.
PDOStatement-> () — 결과 집합에서 다음 행을 가져옵니다
PDOStatement->fetchAll() — 모든 결과 집합 행을 포함하는 배열을 반환합니다
PDOStatement->fetchColumn() — 다음 행에서 단일 열을 반환합니다. 결과 세트의 행
PDOStatement->fetchObject() — 다음 행을 가져와서 객체로 반환합니다.
PDOStatement->getAttribute() — 명령문 속성 검색
PDOStatement-> () — 결과 집합의 열에 대한 메타데이터를 반환합니다.
PDOStatement->nextRowset() — 다중 행 집합 문 핸들에서 다음 행 집합으로 이동합니다.
PDOStatement->rowCount() — 개수를 반환합니다. 마지막 SQL 문의 영향을 받은 행
PDOStatement->setAttribute() — 명령문 속성 설정
PDOStatement->setFetchMode() — 이 명령문에 대한 기본 가져오기 모드 설정

PDO는 A입니다. "데이터베이스 액세스 추상화 계층"은 다양한 데이터베이스의 액세스 인터페이스를 통합하는 데 사용됩니다. mysql 및 mysqli의 함수 라이브러리와 비교할 때 PDO는 ADODB 및 MDB2에 비해 데이터베이스 간 사용을 더욱 친숙하게 만듭니다. 현재 '데이터베이스 추상화 계층'을 구현하려면 갈 길이 멀다. PDO와 같은 '데이터베이스 액세스 추상화 계층'을 사용하는 것은 좋은 선택이다.

PDO에는 사전 정의된 세 가지 클래스가 포함되어 있습니다.

PDO에는 사전 정의된 세 가지 클래스인 PDO, PDOStatement 및 PDOException이 포함되어 있습니다.

1.PDO

PDO->beginTransaction() — 롤백 시작 지점 표시
PDO->commit() — 롤백 종료 지점 표시 및 SQL 실행
PDO->rollBack() — 롤백 수행
PDO->__construct() — PDO 링크 데이터베이스의 인스턴스 생성
PDO->errorCode() — 오류 코드 가져오기
PDO-> ;errorInfo() — 오류 정보 가져오기
PDO->exec() — SQL 문을 처리하고 영향을 받은 항목 수를 반환합니다.
PDO->getAttribute() — "데이터베이스 연결 개체" 가져오기 PDO->getAvailableDrivers() — 유효한 PDO 드라이버 이름 가져오기
PDO->lastInsertId() — 작성된 마지막 데이터 조각의 기본 키 값 가져오기
PDO->prepare( ) — "쿼리 객체" 생성
PDO->query() — SQL 문을 처리하고 "PDOStatement" 반환
PDO->quote() — SQL 인용문의 문자열에 추가
PDO ->setAttribute() — "데이터베이스 연결 개체"에 대한 속성 설정

자세한 설명 1) PDO에서 데이터베이스 연결

$dsn = 'mysql:dbname=ent;host =127.0.0.1′;
$user = 'root';
$password = '123456';
시도해 보세요 {
$dbh = new PDO($dsn, $user, $password, array (PDO::ATTR_PERSISTENT = > true));
$dbh->query('set names utf8;');
foreach ($dbh->query('SELECT * from tpm_juese') as $row) {
print_r($row);
}
} catch (PDOException $e) {
echo '연결 실패: ' . $e->getMessage();
}

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

자세한 설명 2) PDO에서의 트랜잭션
PDO->beginTransaction(), PDO->commit(), PDO->rollBack()은 롤백 기능이 지원될 때 사용되는 세 가지 방법입니다. 함께. PDO->beginTransaction() 메소드는 시작점을 표시하고, PDO->commit() 메소드는 롤백 종료점을 표시하고 SQL을 실행하며, PDO->rollBack()은 롤백을 수행합니다.
{
$dbh = new PDO('mysql:host=localhost;dbname=test', 'root', ”);
$dbh->query(를 시도해 보세요. '이름 설정 utf8;');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$dbh->beginTransaction();
$dbh- >exec("INSERT INTO `test`.`table` (`name` ,`age`)VALUES ('mick', 22);");
$dbh->exec("INSERT INTO `test `.`table` (`name` ,`age`)VALUES ('lily', 29);");
$dbh->exec("INSERT INTO `test`.`table` (`name` ,`age`)VALUES ('susan', 21);");
$dbh->commit();

} catch(예외 $e) {
$dbh-> ;rollBack();
echo "Failed: " . $e->getMessage();
}
?>
이제 쿼리를 배포하기 전에 PDO를 통해 연결을 설정했습니다. PDO가 트랜잭션을 관리하는 방법을 이해해야 합니다. 이전에 트랜잭션 처리를 접한 적이 없다면(이제 간략하게 소개하겠습니다.) 원자성, 일관성, 독립성 및 내구성(Atomicity), 일관성, 격리 및 내구성(ACID)의 4가지 주요 기능을 제공합니다. 평신도 입장에서는 트랜잭션의 모든 작업이 제출되면 단계적으로 실행되더라도 데이터베이스에 안전하게 적용되어야 하며 다른 연결의 방해를 받지 않아야 하며 오류가 발생하면 쉽고 자동으로 취소될 수 있습니다. 트랜잭션의 일반적인 용도는 일괄 변경 사항을 "저장"한 다음 즉시 실행하는 것입니다. 즉, 업데이트 효율성이 완전히 향상되므로 트랜잭션을 통해 스크립트가 더욱 빠르고 강력해집니다. 이 이점은 여전히 ​​올바르게 사용해야 함)

안타깝게도 모든 데이터베이스가 트랜잭션을 지원하는 것은 아니므로 PDO는 연결을 설정할 때 "자동 커밋" 모드로 간주되는 모드에서 실행해야 합니다. 자동 커밋 모드는 실행하는 모든 쿼리를 의미합니다. 데이터베이스가 트랜잭션을 지원하는지 여부에 관계없이 자체 암시적 트랜잭션 처리가 있습니다. 트랜잭션이 필요한 경우 PDO->beginTransaction() 메서드를 사용하여 트랜잭션을 생성해야 합니다. 기본 드라이버가 트랜잭션을 지원하지 않으면 PDOException이 발생합니다(예외 처리 설정에 관계없이 이는 항상 심각한 오류 조건이므로). 트랜잭션 내에서 트랜잭션의 코드가 성공적으로 실행되었는지 여부에 따라 PDO->commit() 또는 PDO->rollBack()을 사용하여 트랜잭션을 종료할 수 있습니다.

스크립트가 종료되거나 연결이 닫힐 때 아직 완료되지 않은 트랜잭션이 있으면 PDO가 자동으로 롤백합니다. 이는 스크립트가 예기치 않게 종료되는 경우 안전한 솔루션입니다. 트랜잭션을 명시적으로 커밋하지 않으면 뭔가 잘못되었다고 가정하고 데이터 안전을 위해 롤백을 수행합니다.

2.PDO문

PDOStatement->bindColumn() — 열을 PHP 변수에 바인딩
PDOStatement->bindParam() — 매개변수를 지정된 변수 이름에 바인딩
PDOStatement->bindValue() — 매개변수에 대한 값
PDOStatement->closeCursor() — 커서를 닫아 명령문을 다시 실행할 수 있도록 합니다.
PDOStatement->columnCount() — 결과 세트의 열 수를 반환합니다
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() — 이 명령문에 대한 기본 가져오기 모드를 설정합니다

三、PDOException

PDO 提供了3中不同的错误处理策略。
1. PDO::ERRMODE_SILENT
PDO는 문과 데이터베이스에 사용되며 PDO->errorCode() 및 PDO->error(Info) 방법을 사용합니다.查错误; PDOStatement->errorCode() 또는 PDOStatement->errorInfo() 방법을 사용하여 PDOStatement->errorInfo() 방법을 사용하세요.信息。而如果错误是가 데이터베이스에 있습니다.调用时导致的,你就应该这个데이터베이스对象上调用那两个방법。
2. PDO::ERRMODE_WARNING
PDO는 E_WARNING을 사용하여 PDO를 생성하고 E_WARNING을 제공합니다.果你只是想看看发生了什么问题而不想中断程序的流程的话。
3. PDO::ERRMODE_EXCEPTION
작동하는 PDO는 PDOException을 제거하는 혁신적인 방식으로 PDOException을 생성합니다.设置는 매우 유용하고 유용하며 매우 유용합니다. “폭발(Blow up)”脚本中的 Out错点 , Non常快速 的 指向一个你代码中可能 Out错区域 .回滚。)
异常模式也是不常매우 유용한, 因为你可以使用比以前那种使用传统的PHP风格的错误处理结构更清晰的结构处理,比误比使用静模式使用更少的代码及嵌套,也能够更加明确地检查每个数据库访问返回值.
PHP에서 사용하는 SQL-92 SQLSTATE에 대한 예외가 더 많습니다.将自己本身의 현대적인 SQLSTATE PDO->errorCode() 방법은 SQLSTATE 대신에 발생합니다. Info()방법, 它可以返回一个包含了SQLSTATE代号,特定数据库驱动的错误代号和特定数据库驱动的错误说明字符串。

// 修改默认的错误显示级别
$dbh-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
?>
属性列表:

PDO::PARAM_BOOL
부울 유형을 나타냅니다.
PDO::PARAM_NULL
SQL에서 NULL 유형을 나타냅니다.
PDO::PARAM_INT
SQL에서 INTEGER 유형을 나타냅니다.
PDO ::PARAM_STR
은 SQL에서 SQL CHAR을 나타내고, VARCHAR 유형은
PDO::PARAM_LOB
이 SQL에서 대형 객체 유형을 나타냅니다.
PDO::PARAM_STMT
는 SQL을 나타냅니다. 레코드 세트 유형은 그렇지 않습니다. 아직 지원됨
PDO::PARAM_INPUT_OUTPUT
매개변수가 저장 프로시저에 대한 INOUT 매개변수임을 지정합니다. 이 값을 명시적 PDO::PARAM_* 데이터 유형과 비트 단위로 OR해야 합니다.
PDO::FETCH_LAZY
결과의 각 행을 객체로 반환
PDO::FETCH_ASSOC
키 값을 첨자로 사용하여 쿼리의 결과 집합만 반환합니다. 이름이 같은 데이터는 하나만 반환합니다.
PDO: FETCH_NAMED
키 값이 첨자로 포함된 쿼리의 결과 집합만 반환하고, 동일한 이름의 데이터는 배열 형식으로 반환됩니다.
PDO::FETCH_NUM
결과 집합만 반환합니다. 숫자가 첨자인 쿼리
PDO::FETCH_BOTH
키 값과 숫자가 첨자인 쿼리의 결과 집합을 동시에 반환합니다.
PDO::FETCH_OBJ
결과를 반환합니다. object
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::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_FWDONLY를 지원하며 포인터 유형을 설정합니다. PDO::CURSOR_FWDONLY
PDO::ATTR_DRIVER_NAME
사용된 PDO 드라이버의 이름을 반환합니다
PDO::ATTR_ORACLE_NULLS
반환된 빈 문자열을 SQL NULL로 변환
PDO::ATTR_PERSISTENT
기존 연결 가져오기
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::CASE_NATURAL
열의 기본 표시 형식 응답
PDO::CASE_LOWER
열 이름을 소문자로 강제 적용
PDO:: CASE_UPPER
열 이름을 대문자로 강제 적용
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_FWDONLY
역방향 전용 포인터 작업 객체 생성
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
드라이버가 매개변수 이름을 정규화할 수 있도록 바인딩된 매개변수 등록 중에 이벤트가 트리거됩니다.

更多PHP PDO函数库详解关文章请关注PHP中文网!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)