>  기사  >  백엔드 개발  >  PHP 시작하기: PDO 데이터베이스

PHP 시작하기: PDO 데이터베이스

WBOY
WBOY원래의
2023-05-20 17:42:06912검색

PHP는 매우 인기 있는 서버측 프로그래밍 언어이며 유연성과 사용 용이성으로 인해 웹 개발에서 선호되는 언어 중 하나입니다. 웹 애플리케이션 개발에서 데이터베이스와 상호작용하는 과정은 매우 중요합니다. PDO(PHP Data Object)는 MySQL, PostgreSQL, Oracle 등 다양한 관계형 데이터베이스와 상호작용하기 위한 공통 인터페이스를 제공하는 PHP의 확장 라이브러리입니다. 이 글에서는 PDO를 사용하여 데이터베이스를 운영하는 방법을 소개하며 초보자에게 적합합니다.

  1. PDO 확장 설치

PDO를 사용하기 전에 PHP가 PDO 확장을 설치했는지 확인해야 합니다. phpinfo() 함수를 통해 PHP 확장 목록을 볼 수 있습니다. 확장자 목록에 PDO 확장자가 없으면 php.ini 파일에서 Extension=pdo.so 및 Extension=pdo_mysql.so를 설정한 다음 웹 서버를 다시 시작하여 PDO 확장자를 활성화해야 합니다.

  1. 데이터베이스 연결

PDO를 사용하여 데이터베이스에 연결하는 것은 매우 편리하며, 데이터베이스의 관련 정보만 제공하면 됩니다. 다음은 MySQL 데이터베이스에 연결하기 위한 샘플 코드입니다.

$dbname = "test";
$host = "localhost";
$user = "root";
$pass = "password";

$dsn = "mysql:host=" . $host . ";dbname=" . $dbname;
$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
                PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");

try {
    $pdo = new PDO($dsn, $user, $pass, $options);
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}

위 코드에서는 데이터베이스 이름, 호스트, 사용자 이름 및 비밀번호를 포함하여 데이터베이스 관련 정보가 먼저 설정됩니다. 그런 다음 DSN(Data Source Name)을 사용하여 데이터베이스 정보를 PDO로 전송합니다. 옵션 배열에는 세 가지 옵션이 설정됩니다:

  • ATTR_ERRMODE는 PDO 오류 처리 모드를 나타내고 오류 정보를 예외 형식으로 발생시킵니다.
  • ATTR_DEFAULT_FETCH_MODE는 결과 집합을 얻는 방법을 나타내며 기본값은 연관 배열입니다.
  • MYSQL_ATTR_INIT_COMMAND는 초기화 SQL 명령을 나타내고 문자 집합을 utf8로 설정합니다.

try-catch 블록은 데이터베이스에 연결할 때 예외를 캡처하고 오류 정보를 출력합니다.

  1. SQL 문 실행

데이터베이스에 성공적으로 연결한 후 데이터 작업을 위한 SQL 문을 실행할 수 있습니다. PDO는 세 가지 주요 PDO 문 개체인

  • PDO::query()를 제공합니다. 이는 SQL 쿼리 문을 실행하고 결과 집합을 반환합니다. SELECT 문에 적용됩니다.
  • PDO::prepare(), SQL 문을 준비합니다. SELECT, UPDATE, INSERT, DELETE 및 기타 문에 적용 가능합니다.
  • PDO::exec()는 SQL 문을 실행하고 영향을 받은 행 수를 반환합니다. UPDATE, INSERT, DELETE 및 기타 문에 적용 가능합니다.

다음은 PDO::query()를 사용하여 레코드를 쿼리하고 출력하는 샘플 코드입니다.

$sql = "SELECT * FROM user";
try {
    $stmt = $pdo->query($sql);
    while ($row = $stmt->fetch()) {
        echo "Name: " . $row['name'] . "<br>";
        echo "Age: " . $row['age'] . "<br>";
    }
} catch (PDOException $e) {
    echo "Query failed: " . $e->getMessage();
}

위 코드에서는 먼저 사용자 테이블의 레코드를 쿼리하기 위해 SQL 쿼리 문을 정의합니다. 그런 다음 query() 메소드를 사용하여 SQL 문을 실행하고 $stmt 변수는 쿼리 결과가 포함된 PDOStatement 개체를 반환합니다. 그런 다음 fetch() 메서드를 사용하여 결과 집합을 순회하고 각 행에 기록된 이름과 나이를 출력합니다. 쿼리를 실행하는 동안 오류가 발생하면 try-catch 블록이 예외를 포착하고 오류 메시지를 출력합니다.

다음은 PDO::prepare()를 사용하여 레코드를 삽입하는 샘플 코드입니다.

$sql = "INSERT INTO user(name, age) VALUES(:name, :age)";
try {
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':age', $age);

    $name = "Alice";
    $age = 30;
    $stmt->execute();

    echo "Record inserted successfully.";
} catch (PDOException $e) {
    echo "Insert failed: " . $e->getMessage();
}

위 코드에서는 사용자 테이블에 레코드를 삽입하기 위한 SQL insert 문을 먼저 정의합니다. prepare() 메소드를 사용하여 SQL 문을 전처리하고 $stmt 변수는 준비된 문이 포함된 PDOStatement 개체를 반환합니다. 그런 다음 binParam() 메서드를 사용하여 자리 표시자를 실제 매개변수와 바인딩합니다. 그런 다음 매개변수 값을 설정하고 마지막으로 Execute() 메소드를 사용하여 SQL 문을 실행합니다. 삽입을 수행하는 동안 오류가 발생하면 try-catch 블록이 예외를 포착하고 오류 메시지를 출력합니다.

  1. 데이터베이스 연결을 닫습니다

데이터베이스 연결이 더 이상 필요하지 않으면 리소스를 해제하기 위해 데이터베이스 연결을 제때에 닫아야 합니다. PDO::null() 메서드를 사용하여 닫을 수 있습니다. 예를 들면 다음과 같습니다.

$pdo = null;

위는 데이터베이스 작업에 PDO를 사용하는 간단한 예입니다. PDO를 사용하는 것은 편리할 뿐만 아니라 휴대성과 보안성이 뛰어납니다. 이 기사에 설명된 방법을 학습하면 신속하게 시작하고 자신의 웹 애플리케이션 개발을 위해 PDO를 사용할 수 있습니다.

위 내용은 PHP 시작하기: PDO 데이터베이스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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