>백엔드 개발 >PHP 튜토리얼 >더 이상 사용되지 않는 `mysql_*` 함수를 최신 준비된 명령문 및 PDO와 함께 사용하여 이전 MySQL-PHP 코드를 어떻게 다시 작성할 수 있습니까?

더 이상 사용되지 않는 `mysql_*` 함수를 최신 준비된 명령문 및 PDO와 함께 사용하여 이전 MySQL-PHP 코드를 어떻게 다시 작성할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-26 00:55:28272검색

How can I rewrite old MySQL-PHP code using deprecated `mysql_*` functions with modern prepared statements and PDO?

더 이상 사용되지 않는 mysql_* 함수로 기존 MySQL-PHP 코드 다시 작성

이 현대 PHP 개발 시대에는 최신 상태를 유지하는 것이 필수적입니다. 모범 사례를 바탕으로 최신 정보를 제공합니다. 가장 시급한 문제 중 하나는 보다 안전하고 안정적인 준비된 명령문과 PDO(PHP 데이터 객체)를 선호하는 mysql_* 함수의 지원 중단입니다.

레거시 코드로 작업해야 하는 불행한 상황에 처한 경우 여전히 mysql_* 기능을 활용하고 있으니 걱정하지 마세요! 다음은 이 전환을 성공적으로 진행하는 데 도움이 되는 단계별 가이드입니다.

연결 매개변수 변환

초기 구성은 다음과 같이 PDO의 연결 문자열로 변환됩니다.

<code class="php">// Old:  $db = new dbConn('127.0.0.1', 'root', 'pass', 'people', 'animals');
// New:  $db = new PDO('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');</code>

중복 기능 제거

PDO에서는 생성자(__construct)와 소멸자(__destruct)가 더 이상 필요하지 않습니다. PDO 객체를 인스턴스화하면 자동으로 연결이 설정됩니다.

데이터베이스 선택 리팩토링

selectDb 기능도 중복됩니다. 데이터베이스 선택은 PDO 연결 문자열에 통합됩니다.

업데이트된 클래스

다음 코드는 업데이트된 dbConn 클래스를 반영합니다.

<code class="php">class dbConn extends PDO
{
    public function __construct($dsn, $user, $password, $options = [])
    {
        parent::__construct($dsn, $user, $password, $options);
    }
}</code>

확장성

원하는 경우 PDO에서 확장하여 자신만의 사용자 정의 데이터베이스 클래스를 만들 수 있습니다. 이를 통해 코드의 유연성과 유창성을 높일 수 있습니다.

사용 예

<code class="php">$db = new dbConn('mysql:host=127.0.0.1;dbname=people;charset=UTF-8', 'root', 'pass');

// Query using prepared statements
$statement = $db->prepare('SELECT * FROM users WHERE name = ?');
$statement->execute([$name]);</code>

결론

PDO 수용 귀하의 PHP 코드는 향상된 보안, 안정성 및 개발자 친화성을 제공합니다. 다음 단계를 수행하면 이전 mysql_* 코드를 성공적으로 다시 작성하고 PHP 개발 방식을 향상시킬 수 있습니다.

위 내용은 더 이상 사용되지 않는 `mysql_*` 함수를 최신 준비된 명령문 및 PDO와 함께 사용하여 이전 MySQL-PHP 코드를 어떻게 다시 작성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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