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는 결과를 배열로 검색하기 위해 fetch
및 fetchAll
과 같은 메소드를 제공합니다.
<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!