PHP에서는 PDO를 사용하여 데이터베이스를 운영하면 코드의 보안과 이식성을 향상시킬 수 있습니다. PDO는 데이터베이스 액세스를 위한 통합 인터페이스를 제공하고 여러 데이터베이스 유형을 지원하는 PHP 확장입니다. 이번 글에서는 PDO의 기본적인 사용법과 주의사항에 대해 소개하겠습니다.
1. 데이터베이스에 연결
PDO를 사용하여 데이터베이스에 연결하려면 다음 매개변수가 필요합니다.
$dsn: 데이터베이스 유형: 호스트=호스트 이름; dbname=데이터베이스 이름
$username: 사용자 이름
$password: 비밀번호
$ options: 문자 집합, 연결 시간 초과 등과 같은 데이터베이스 연결을 위한 일부 옵션을 지정하는 데 사용되는 선택적 매개 변수입니다.
다음은 MySQL 데이터베이스에 연결하는 예입니다.
$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';
$username = 'root';
$password = '123456' ;
$ options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
try {
$pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
die($e->getMessage());
}
2 SQL 문 실행
실행에 필요합니다. PDO를 사용한 SQL문 PDO의 prepare 메소드를 호출하면 먼저 SQL문을 준비하고 SQL문의 변수를 매개변수에 바인딩합니다. 다음으로, 실행 메소드를 호출하여 SQL 문을 실행합니다.
다음은 데이터베이스 쿼리의 예입니다.
$sql = 'SELECT id, name, age FROM users WHERE age >';
$stmt = $pdo->prepare($sql);
$ stmt- >bindParam(1, $age);
$age = 18;
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
이 예에서는 , SQL 문의 변수는 물음표로 대체됩니다. 변수를 매개변수에 바인딩할 때는 BindParam 또는 BindValue 메서드를 사용해야 합니다.
bindParam 메소드는 변수를 참조로 매개변수에 전달하는데, 이는 변수의 값이 변경되면 매개변수의 값도 변경된다는 의미입니다.
bindValue 메소드는 변수의 값을 매개변수에 복사합니다. 즉, 변수의 값이 변경되더라도 매개변수의 값은 변경되지 않습니다.
3. 트랜잭션 제어 사용
데이터베이스 작업에서 트랜잭션은 전체적으로 이 작업 그룹이 모두 성공적으로 실행되거나 모두 롤백되는 것을 의미합니다. PDO의 startTransaction, commit 및 RollBack 메소드는 트랜잭션 제어를 달성하는 데 도움이 될 수 있습니다.
다음은 데이터 삽입 예시입니다.
try {
$pdo->beginTransaction(); $stmt = $pdo->prepare('INSERT INTO users (name, age) VALUES (:name, :age)'); $stmt->bindParam(':name', $name); $stmt->bindParam(':age', $age); $name = '张三'; $age = 20; $stmt->execute(); $name = '李四'; $age = 22; $stmt->execute(); $pdo->commit();
} catch (PDOException $e) {
$pdo->rollBack(); die($e->getMessage());
}
이 예시에서 startTransaction 메소드는 트랜잭션 시작을 의미하고, commit 메소드는 트랜잭션 커밋을 의미합니다. RollBack 메소드는 트랜잭션을 롤백하는 것을 의미합니다.
4. 참고
PDO를 사용하여 데이터베이스를 운영할 때 다음 사항에도 주의해야 합니다.
결론적으로 PDO를 사용하여 데이터베이스를 운영하면 코드의 보안성과 이식성을 향상시킬 수 있습니다. 데이터베이스를 운영할 때 보안 문제를 피하기 위해서는 위의 방법들을 조합하고, 더 많이 생각하고, 더 많이 시도해보고, PDO를 더 잘 활용할 수 있습니다.
위 내용은 PHP의 PDO 운영 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!