php--PDO-연결 및 연결 관리

伊谢尔伦
풀어 주다: 2016-11-22 09:36:53
원래의
1355명이 탐색했습니다.

PDO 기본 클래스의 인스턴스를 생성하여 연결이 설정됩니다. 어떤 드라이버를 사용하든 PDO 클래스 이름이 사용됩니다. 생성자는 데이터베이스 소스(소위 DSN)와 사용자 이름 및 비밀번호(있는 경우)를 지정하는 매개변수를 받습니다.

예제 #1 MySQL에 연결

<?php
    $dbh = new PDO(&#39;mysql:host=localhost;dbname=test&#39;, $user, $pass);
?>
로그인 후 복사

연결 오류가 있는 경우 PDOException 예외 개체가 발생합니다. 오류 조건을 처리하려면 예외를 포착하거나 set_Exception_handler() 를 통해 설정된 애플리케이션 전역 예외 핸들러에 그대로 두도록 선택할 수 있습니다.

예제 #2 연결 오류 처리

<?php
    try {
        $dbh = new PDO(&#39;mysql:host=localhost;dbname=test&#39;, $user, $pass);
        foreach($dbh->query(&#39;SELECT * from FOO&#39;) as $row) {
            print_r($row);
        }
        $dbh = null;
    } catch (PDOException $e) {
        print "Error!: " . $e->getMessage() . "<br/>";
        die();
    }
?>
로그인 후 복사

애플리케이션이 PDO 생성자에서 예외를 포착하지 못하는 경우 zend 엔진이 취하는 기본 조치는 스크립트를 종료하고 다음을 표시하는 것입니다. 이 역추적은 사용자 이름과 비밀번호를 포함한 전체 데이터베이스 연결 세부 정보를 공개할 수 있습니다. 그러므로 명시적으로(catch 문을 통해) 또는 암시적으로(set_Exception_handler()를 통해) 예외를 포착하는 것은 책임입니다.

데이터가 성공적으로 연결되면 PDO 클래스의 인스턴스가 스크립트로 반환됩니다. 이 연결은 PDO 개체의 수명 주기 동안 활성 상태로 유지됩니다. 연결을 닫으려면 개체를 삭제하여 해당 개체에 대한 나머지 참조가 모두 삭제되도록 해야 합니다. 개체 변수에 NULL 값을 할당할 수 있습니다. 이를 명시적으로 수행하지 않으면 PHP는 스크립트 끝에서 자동으로 연결을 닫습니다.

예 #3 연결 닫기

<?php
    $dbh = new PDO(&#39;mysql:host=localhost;dbname=test&#39;, $user, $pass);
    // 在此使用连接
    // 现在运行完成,在此关闭连接
    $dbh = null;
?>
로그인 후 복사

많은 웹 애플리케이션은 데이터베이스 서비스에 대한 지속적인 연결을 사용하여 이점을 얻습니다. 영구 연결은 스크립트가 끝난 후에도 닫히지 않으며 동일한 자격 증명을 사용하는 다른 스크립트 연결 요청이 이루어질 때 캐시되어 재사용됩니다. 지속적인 연결 캐싱을 사용하면 스크립트가 데이터베이스와 통신해야 할 때마다 새 연결을 설정하는 오버헤드를 방지하여 웹 애플리케이션을 더 빠르게 만들 수 있습니다.

예제 #4 영구 연결

<?php
    $dbh = new PDO(&#39;mysql:host=localhost;dbname=test&#39;, $user, $pass, array(
        PDO::ATTR_PERSISTENT => true
    ));
?>
로그인 후 복사

영구 연결을 사용하려면 PDO 생성자에 전달된 드라이버 옵션 배열에 PDO::ATTR_PERSISTENT를 설정해야 합니다. 객체가 초기화된 후 PDO::setAttribute()를 사용하여 이 속성을 설정하면 드라이버는 영구 연결을 사용하지 않습니다.

PDO ODBC 드라이버를 사용하고 ODBC 라이브러리가 ODBC 연결 풀링을 지원하는 경우(unixODBC와 Windows의 두 가지 접근 방식이 있으며 더 있을 수도 있음) 영구 PDO 연결을 사용하지 않는 것이 좋습니다. ODBC 연결 풀 레이어 처리에 대한 연결 캐시입니다. ODBC 연결 풀은 프로세스의 다른 모듈과 공유됩니다. PDO가 연결을 캐시하도록 요청하면 연결이 ODBC 연결 풀로 반환되지 않으므로 다른 모듈을 제공하기 위해 추가 연결이 생성됩니다.


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿