PHP는 주요 목적이 웹 애플리케이션 개발인 널리 사용되는 서버 측 스크립팅 언어입니다. 데이터베이스 연결은 웹 애플리케이션의 중요한 부분이므로 이 기사에서는 PDO(PHP Data Objects)를 사용하여 데이터베이스에 연결하는 방법을 소개합니다. PDO는 다양한 데이터베이스와 상호 작용할 수 있는 간단하고 안전하며 빠른 방법을 제공하는 PHP의 추상화 계층입니다. 이번 포스팅에서는 MySQL을 예로 들어보겠습니다.
PDO를 사용하여 데이터베이스에 연결하기 전에 PDO 확장이 PHP에 설치되어 있고 확장이 활성화되어 있는지 확인해야 합니다. 그렇지 않은 경우 PHP 구성 파일(php.ini)에 PDO 확장을 추가해야 합니다. 다음 명령을 사용하여 PDO 확장을 활성화했는지 확인할 수 있습니다.
php -m | grep pdo
목록에 PDO 및 PDO_MYSQL이 표시되면 PDO를 사용하여 MySQL 데이터베이스에 연결할 준비가 된 것입니다.
MySQL 데이터베이스에 연결하는 첫 번째 단계는 PDO 객체를 생성하는 것입니다. PDO 개체를 생성하려면 다음 정보를 제공해야 합니다.
다음은 MySQL 데이터베이스에 연결하기 위한 PDO 코드의 예입니다.
<?php $hostname = 'localhost'; // MySQL主机名 $database = 'mydatabase'; // 数据库名称 $username = 'myusername'; // 用户名 $password = 'mypassword'; // 密码 try { $dsn = "mysql:host=$hostname;dbname=$database"; $pdo = new PDO($dsn, $username, $password); echo '成功连接到数据库!'; } catch (PDOException $exception) { die('连接数据库时发生错误:'.$exception->getMessage()); }
위 코드에서는 $dsn 변수를 사용하여 MySQL 데이터베이스에 연결하기 위한 DSN을 저장합니다. 이 DSN의 형식은 "mysql:host=호스트 이름;dbname=데이터베이스 이름"입니다. 이 DSN을 PDO 생성자에 전달하여 PDO 개체를 만듭니다. 연결에 성공하면 "데이터베이스에 성공적으로 연결되었습니다!"라는 텍스트가 출력됩니다. 오류가 발생하면 catch 블록을 사용하면 오류 메시지가 출력됩니다.
MySQL 데이터베이스에 연결한 후 다양한 쿼리를 수행하여 데이터를 검색하고 데이터베이스를 업데이트할 수 있습니다. 다음은 PDO를 사용하여 PHP에서 MySQL 쿼리를 실행하는 몇 가지 예입니다.
$sql = "SELECT * FROM users WHERE id = :id"; $stmt = $pdo->prepare($sql); $stmt->execute(['id' => 1]); $result = $stmt->fetchAll(); print_r($result);
위 예에서는 PDO의 prepare 메소드를 사용하여 쿼리 문을 준비했습니다. 쿼리 문에서 수정해야 하는 부분(즉, "id = :id"의 ":id")을 자리 표시자로 바꿉니다. 실행 메소드를 사용하여 쿼리 문을 실행하고 쿼리할 자리 표시자 값을 전달합니다. 마지막으로 결과는 fetchAll 메서드를 사용하여 배열로 반환됩니다.
$sql = "INSERT INTO users (name, email) VALUES (?, ?)"; $stmt = $pdo->prepare($sql); $stmt->execute(['John Doe', 'johndoe@example.com']); echo $stmt->rowCount() . ' 行数据已添加到数据库';
위의 예에서는 PDO의 prepare 메소드를 사용하여 쿼리문을 준비했습니다. 쿼리 문의 자리 표시자는 "?"로 대체됩니다. 실행 메소드를 사용하여 쿼리 문을 실행하고 삽입할 자리 표시자 값을 전달합니다. 마지막으로 rowCount 메소드를 사용하여 삽입된 레코드 수를 가져옵니다.
$sql = "UPDATE users SET name = ? WHERE id = ?"; $stmt = $pdo->prepare($sql); $stmt->execute(['Jane Doe', 1]); echo $stmt->rowCount() . ' 行数据已更新';
위의 예에서는 PDO의 prepare 메소드를 사용하여 쿼리 문을 준비했습니다. 쿼리 문의 자리 표시자는 "?"로 대체됩니다. 실행 메소드를 사용하여 쿼리 문을 실행하고 업데이트할 자리 표시자 값을 전달합니다. 마지막으로 rowCount 메서드를 사용하여 업데이트된 레코드 수를 가져옵니다.
$sql = "DELETE FROM users WHERE id = ?"; $stmt = $pdo->prepare($sql); $stmt->execute([1]); echo $stmt->rowCount() . ' 行数据已删除';
위의 예에서는 PDO의 prepare 메소드를 사용하여 쿼리 문을 준비했습니다. 쿼리 문의 자리 표시자는 "?"로 대체됩니다. 실행 메소드를 사용하여 쿼리 문을 실행하고 삭제할 자리 표시자 값을 전달합니다. 마지막으로 rowCount 메서드를 사용하여 삭제된 레코드 수를 가져옵니다.
데이터베이스에 대한 쿼리 작업을 완료한 후에는 데이터베이스 연결을 닫는 것이 가장 좋습니다. 이렇게 하면 나머지 스크립트 실행 동안 불필요한 연결이 유지되는 것을 방지하고 로드가 높은 기간 동안 데이터베이스 서버의 리소스 소비를 줄일 수 있습니다. PDO를 사용하여 PHP에서 MySQL 데이터베이스에 연결할 때 다음 코드를 사용하여 연결을 닫을 수 있습니다.
$pdo = null;
위 코드에서 $pdo는 MySQL 데이터베이스에 연결할 때 생성한 PDO 개체입니다. pdo 개체가 닫히면 pdo 개체가 삭제되고 데이터베이스에 대한 연결이 해제되어 다른 클라이언트와 새 데이터베이스 연결을 설정할 수 있습니다.
요약
PDO(PHP 데이터 개체)를 사용하여 MySQL 데이터베이스에 연결하면 데이터베이스 작업을 더 쉽고 빠르게 수행할 수 있습니다. 이 기사에서는 데이터베이스 연결 및 쿼리에 PDO 개체를 사용하는 기본 방법을 소개했습니다. PDO에 대해 더 자세히 알아보고 고급 기능을 알고 싶다면 PHP 공식 문서를 참고하고 지속적인 연습을 통해 경험을 쌓아보세요.
위 내용은 PDO를 사용하여 PHP에서 데이터베이스에 연결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!