PDO - PHP Data Object(PHP Data Object)의 약어로, 여러 데이터베이스에 대한 통합 연결 인터페이스를 제공하는 방법으로 PDO의 하위 계층은 PDO 데이터 드라이버와 협력해야 합니다. 해당 데이터베이스를 운영합니다. PDO는 현재 공식적으로 권장되는 PHP 데이터베이스 연결 방법입니다 . 장점은 다음과 같습니다.
1. 맨 아래 계층 구현된 통합 인터페이스 데이터베이스 작업 인터페이스는 백엔드에서 어떤 종류의 데이터베이스를 사용하든 코드가 캡슐화되면 애플리케이션 계층 호출은 기본적으로 백엔드 데이터베이스가 변경되면 애플리케이션 계층 코드가 동일합니다. 기본적으로 수정할 필요가 없습니다. ( 권장 학습: PHP 프로그래밍 입문부터 숙련까지)
2. PDO는 저장 절차와 같은 고급 DB 기능 작업을 지원합니다. MySQL 네이티브 라이브러리는 지원되지 않습니다.
3. PDO는 PHP의 공식 PECL 라이브러리로, 호환성과 안정성이 MySQL Extension보다 높아야 합니다. pecl 업그레이드 pdo 명령을 직접 사용할 수 있습니다. 업그레이드하세요.
4 PDO는 SQL 주입을 방지하고 데이터베이스의 보안을 더욱 강화할 수 있습니다. SQL 주입을 방지하는 PDO의 원리
PHP 5.1.0 이후에는 PDO가 기본적으로 활성화되어 있습니다. phpinfo() 함수를 통해 PDO의 열기 상태를 확인할 수 있습니다:
PDO 전처리
데이터베이스를 사용하여 쿼리를 실행하면 데이터베이스 관리 시스템(DBMS)이 쿼리를 컴파일하고 최적화하며, 이를 사용하여 PDO 전처리를 통해 이 프로세스는 첫 번째 쿼리 중에만 수행되며, 바인딩된 매개변수만 교체하면 되므로 반복 컴파일 시간이 절약됩니다. 또한 PDO 매개변수 바인딩을 사용하면 다음과 같은 보안 문제도 피할 수 있습니다. SQL 주입으로.
코드 데모:
<?phptry{ $dbh=new PDO('mysql:host=localhost;dbname=testDB','root',''); $stmt=$dbh->prepare("INSERT users (user_name,sex) VALUES (:user_name,:sex)"); $stmt->bindParam(':user_name',$name); $stmt->bindParam(":sex",$sex); //插入一行 $name="yang001"; $sex="M"; $stmt->execute(); //再次插入一行 $name="yang002"; $sex="F"; $stmt->execute(); }catch (PDOException $e){ print "Error ! : ".$e->getMessage(); die(); }
다음과 같이 데이터베이스 결과를 봅니다.
전처리된 쿼리 문을 사용하여 결과를 검색합니다. # 🎜 🎜#
<?phptry{ $dbh=new PDO('mysql:host=localhost;dbname=testDB','root',''); $stmt=$dbh->prepare("SELECT * FROM users WHERE user_name=:user_name "); $stmt->bindParam(':user_name',$name); //插入一行 $name="yang001"; if($stmt->execute()){ while ($row=$stmt->fetch(PDO::FETCH_ASSOC)){ print_r($row); } } }catch (PDOException $e){ print "Error ! : ".$e->getMessage(); die(); }
위 내용은 PHP에 pdo를 사용해도 괜찮나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!