집 >데이터 베이스 >MySQL 튜토리얼 >PHP에서 MySQL 함수를 PDO로 대체해야 하는 이유는 무엇입니까?
MySQL 함수에서 PHP의 PDO로 전환
PHP의 MySQL 기능은 더 이상 사용되지 않으며 최종적으로 제거될 예정입니다. 향후 호환성을 보장하고 향상된 보안 및 기능을 활용하려면 개발자는 강력한 객체 지향 데이터베이스 액세스 계층인 PDO(PHP Data Objects)로 마이그레이션해야 합니다.
PDO의 장점:
PDO를 사용하여 데이터베이스에 연결
MySQL 연결:
<code class="language-php">$dsn = 'mysql:dbname=databasename;host=127.0.0.1'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);</code>
MSSQL 연결:
<code class="language-php">$dsn = 'sqlsrv:Server=127.0.0.1;Database=databasename'; $user = 'dbuser'; $password = 'dbpass'; $dbh = new PDO($dsn, $user, $password);</code>
준비된 문장으로 쿼리 실행
PDO는 효율적이고 안전한 쿼리 실행을 위해 준비된 문을 활용합니다. 변수를 바인딩하는 방법은 다음과 같습니다.
명명된 매개변수:
<code class="language-php">$statement = $dbh->prepare('SELECT * FROM users WHERE name = :username'); $statement->execute([':username' => 'example']);</code>
색인된 매개변수:
<code class="language-php">$statement = $dbh->prepare('SELECT * FROM users WHERE name = ?'); $statement->execute(['example']);</code>
쿼리 결과 가져오기
결과 검색을 용이하게 하는 여러 방법:
fetch()
: 단일 행을 배열로 반환합니다.fetchAll()
: 모든 행을 배열의 배열로 반환합니다.rowCount()
: 영향을 받은 행 수를 제공합니다(INSERT, UPDATE, DELETE에 유용함).PDO 연결 클래스 예시
향상된 코드 구성 및 재사용성을 위해 사용자 정의 PDO 클래스를 고려하십시오.
<code class="language-php">class MyPDO { public $dbh; public function __construct($dsn, $username, $password) { $this->dbh = new PDO($dsn, $username, $password); $this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } public function query($sql) { return $this->dbh->query($sql); } public function prepare($sql) { return $this->dbh->prepare($sql); } } // Example Usage: $mypdo = new MyPDO($dsn, $username, $password); $stmt = $mypdo->prepare('SELECT * FROM users WHERE name = :name'); $stmt->execute([':name' => 'example']); while ($row = $stmt->fetch()) { echo $row['name']; }</code>
위 내용은 PHP에서 MySQL 함수를 PDO로 대체해야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!