> 백엔드 개발 > PHP 튜토리얼 > MySQL 함수를 PDO로 대체하는 방법: PHP의 최신 데이터베이스 연결 가이드?

MySQL 함수를 PDO로 대체하는 방법: PHP의 최신 데이터베이스 연결 가이드?

Barbara Streisand
풀어 주다: 2024-11-16 04:07:50
원래의
1001명이 탐색했습니다.

How to Replace MySQL Functions with PDO: A Guide to Modern Database Connectivity in PHP?

MySQL 기능을 PDO로 대체하는 방법

소개:

MySQL 확장은 더 이상 사용되지 않습니다. PHP에서는 데이터베이스 연결을 위해 MySQLi 또는 PDO_MySQL로 대체되어야 합니다. PDO(PHP Data Objects)는 여러 데이터베이스에 액세스하기 위한 현대적인 객체 지향 인터페이스를 제공합니다.

MySQL 및 MSSQL 데이터베이스에 연결:

MySQL:

$dsn = 'mysql:dbname=database_name;host=localhost';
$user = 'username';
$password = 'password';

$dbh = new PDO($dsn, $user, $password);
로그인 후 복사

MSSQL:

$dsn = 'sqlsrv:Server=localhost;Database=database_name';
$user = 'username';
$password = 'password';

$dbh = new PDO($dsn, $user, $password);
로그인 후 복사

쿼리 수행:

PDO는 쿼리 실행을 위해 준비된 문을 사용합니다. , SQL 주입으로부터 보호합니다.

예제 SQL:

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
로그인 후 복사

쿼리 실행:

// Prepare statement with array of named variables
$result = $dbh->prepare($SQL);
$result->execute([':username' => $username]);

// OR

// Prepare statement with named placeholder indicator
$result = $dbh->prepare($SQL);
$result->bindValue(':username', $username);
$result->execute();
로그인 후 복사

결과 가져오기:

// Fetch a single row as an array
$row = $result->fetch();

// Fetch all rows as an array
$rows = $result->fetchAll();
로그인 후 복사

도우미 클래스 사용:

데이터베이스 상호 작용을 단순화하려면 다음과 같은 클래스 사용을 고려하세요.

class PDOConnection {
    public $connection;

    public function __construct($dsn, $username, $password) {
        $this->connection = new PDO($dsn, $username, $password);
        $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }

    public function query($SQL) {
        return $this->connection->query($SQL);
    }

    public function prepare($SQL, $params = []) {
        $result = $this->connection->prepare($SQL);
        $result->execute($params);
        return $result;
    }
}
로그인 후 복사

사용 예:

$db = new PDOConnection($dsn, $user, $password);

$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
$result = $db->prepare($SQL, ['username' => $username]);

while ($row = $result->fetch()) {
    echo $row['ID'] . ' ' . $row['EMAIL'];
}
로그인 후 복사

위 내용은 MySQL 함수를 PDO로 대체하는 방법: PHP의 최신 데이터베이스 연결 가이드?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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