>데이터 베이스 >MySQL 튜토리얼 >더 이상 사용되지 않는 MySQL 함수에서 MySQL 및 MSSQL용 PDO로 마이그레이션하는 방법은 무엇입니까?

더 이상 사용되지 않는 MySQL 함수에서 MySQL 및 MSSQL용 PDO로 마이그레이션하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-10 09:33:42458검색

How to Migrate from Deprecated MySQL Functions to PDO for MySQL and MSSQL?

MySQL 함수를 MySQL 및 MSSQL용 PDO로 변환

MySQL 함수 지원 중단 및 대안

MySQL 함수 확장은 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 대안으로 MySQLi 또는 PDO_MySQL 확장을 사용하는 것이 좋습니다. MySQLi 및 PDO는 MySQL 기능에 비해 향상된 보안 및 기능을 제공합니다.

PDO 구현

PDO(PHP Data Objects)는 데이터베이스에 액세스하기 위한 객체 지향 API입니다. PDO를 사용하여 데이터베이스에 연결하려면 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를 사용하여 쿼리 실행

PDO는 준비된 문을 사용하여 SQL 주입 취약점을 방지합니다. 준비된 문은 변수를 나타내기 위해 이름이 지정되거나 색인화된 자리 표시자를 사용하여 SQL 쿼리를 정의합니다.

<code class="language-php">$SQL = 'SELECT ID, EMAIL FROM users WHERE user = :username';
$preparedStatement = $dbh->prepare($SQL);</code>

바인드 변수

bindParam 또는 bindValue을 사용하여 준비된 문에 값을 바인딩합니다.

<code class="language-php">$preparedStatement->bindParam(':username', $username);</code>

쿼리 실행

결과를 얻으려면 준비된 명령문을 실행하세요.

<code class="language-php">$preparedStatement->execute();</code>

결과 얻기

PDO는 결과를 배열로 검색하기 위해 fetchfetchAll과 같은 메소드를 제공합니다.

<code class="language-php">while ($row = $preparedStatement->fetch()) {
    echo $row['ID'];
    echo $row['EMAIL'];
}</code>

PDO 연결 클래스 사용

PDO 연결 클래스를 생성하여 데이터베이스 작업을 단순화할 수 있습니다.

<code class="language-php">class Database {

    protected $connection;

    public function __construct($dsn, $user, $password) {
        $this->connection = new PDO($dsn, $user, $password);
    }

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

    public function prepare($SQL, $params = []) {
        $preparedStatement = $this->connection->prepare($SQL);
        $preparedStatement->execute($params);
        return $preparedStatement;
    }

}

// 使用方法:
$db = new Database($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'];
    echo $row['EMAIL'];
}</code>

위 내용은 더 이상 사용되지 않는 MySQL 함수에서 MySQL 및 MSSQL용 PDO로 마이그레이션하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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