PDO 연결을 통한 OOP 이해
객체 지향 프로그래밍(OOP)은 소프트웨어 설계에 대한 구조화된 접근 방식을 제공하여 실제 엔터티를 다음과 같이 모델링합니다. 사물. PHP의 PDO(PDO)를 사용한 데이터베이스 연결의 경우 OOP의 올바른 사용법을 이해하는 것이 중요합니다.
데이터베이스 연결을 처리하는 데이터베이스 클래스와 사용자 클래스 등 여러 클래스가 있는 데이터베이스 연결 시나리오를 생각해 보세요. 데이터베이스에 대한 작업을 수행합니다. 주어진 것을 분석해보자 코드:
Database.php:
class Database { private $conn; private $dsn = 'mysql:dbname=test;host=127.0.0.1'; private $user = 'root'; private $password = ''; public function __construct() { $this->conn = new PDO($this->dsn, $this->user, $this->password); return $this->conn; } }
사용자. php:
include "database.php"; class User { private $conn; public function __construct() { $this->conn = new Database(); } public function login() { $stmt = $this->conn->prepare("SELECT username, usermail FROM user"); // Rest of the code... } }
App.php:
$user = new User(); $list = $user->login(); // Rest of the code...
오류 원하는 동작:
이 코드를 실행하면 prepare()가 데이터베이스에 대해 정의되지 않은 메서드임을 나타내는 오류가 발생합니다.
올바른 구현:
이 문제를 해결하려면 다음 지침을 따라야 합니다.
업데이트됨 코드:
database.php:
// Define database connection parameters $host = '127.0.0.1'; $db = 'test'; $user = 'root'; $pass = ''; $charset = 'utf8'; // Create a PDO connection $dsn = "mysql:host=$host;dbname=$db;charset=$charset"; $opt = [ \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, \PDO::ATTR_EMULATE_PREPARES => false, ]; $pdo = new \PDO($dsn, $user, $pass, $opt);
U ser.php:
class User { private $conn; public function __construct(\PDO $pdo) { $this->conn = $pdo; } public function getUsers() { return $this->conn->query("SELECT username, usermail FROM user")->fetchAll(); } }
App.php:
include 'database.php'; $user = new User($pdo); $list = $user->getUsers(); // Rest of the code...
이것 코드는 Database.php를 통해 데이터베이스 연결을 설정하고 연결 인스턴스를 User 클래스 생성자에 전달합니다. 그런 다음 사용자는 $conn에 저장된 PDO 개체를 사용하여 쿼리를 실행할 수 있습니다.
이점:
이 접근 방식은 원래 구현에 비해 많은 이점을 제공합니다.
위 내용은 OOP 원칙은 PDO를 사용하여 PHP에서 데이터베이스 연결 처리를 어떻게 향상시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!