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 중국어 웹사이트의 기타 관련 기사를 참조하세요!