웹 사이트 개발에 PHP를 사용할 때 개발자는 종종 몇 가지 일반적인 실수에 직면합니다. 그중에서도 PHP 치명적인 오류 : 정의되지 않은 함수로 호출 MySQL_Query ()는 비교적 일반적인 것입니다. 이 오류는 일반적으로 데이터베이스 확장 기능을 올바르게 사용하지 않으면 발생합니다.
PHP 5.5부터 MySQL_* 일련의 함수가 더 이상 사용되지 않았으며 PHP 7에서 완전히 제거되었습니다. 따라서 프로젝트 코드가 여전히 MySQL_Query () 와 같은 이전 기능을 사용하는 경우 위의 오류가 발생합니다.
이 문제를 해결하려면 공식적으로 권장되는 MySQLI 또는 PDO Extension 라이브러리를 대신 사용해야합니다.
<?php $conn = new mysqli('localhost', 'username', 'password', 'database'); if ($conn->connect_error) { 다이 ( 'Connect는 데이터베이스에 연결하지 못했습니다 :'. $ conn-> connect_error); } $ sql = 'select * from user'; $ result = $ conn-> query ($ sql); if ($ result-> num_rows> 0) { while ($ row = $ result-> fetch_assoc ()) { echo 'username :'. $ 행 [ '사용자 이름']. ', 이메일 :'. $ 행 [ '이메일']. '<br> ';; } } 또 다른 { echo '사용자가 찾을 수 없음'; } $ conn-> close (); ?>
이 코드는 MySQLI를 사용하여 연결을 설정하고 쿼리를 실행하고 결과를 출력하는 방법을 보여줍니다. 연결이 실패하면 프롬프트 메시지가 반환됩니다.
<?php $dsn = 'mysql:host=localhost;dbname=database'; $username = 'username'; $password = 'password'; try { $conn = new PDO($dsn, $username, $password); $conn-> setAttribute (pdo :: att_errmode, pdo :: errmode_exception); $ sql = 'select * from user'; $ stmt = $ conn-> query ($ sql); while ($ row = $ stmt-> fetch (pdo :: fetch_assoc)) { echo 'username :'. $ 행 [ '사용자 이름']. ', 이메일 :'. $ 행 [ '이메일']. '<br> ';; } } catch (pdoexception $ e) { Echo ''데이터베이스에 연결하지 못했습니다 : '. $ e-> getMessage (); 출구; } $ conn = null; ?>
PDO를 사용하면 MySQL을 처리 할뿐만 아니라 여러 데이터베이스를 지원할 수 있으며,이 데이터베이스는 예외 메커니즘을 통해 오류를 처리하기에 더욱 확장 가능하고 편리합니다.
PHP 치명적인 오류가 발생할 때 : 정의되지 않은 함수 MySQL_Query () 오류로 호출하면 문제는 일반적으로 이전 MySQL 확장이 PHP 버전에서 더 이상 지원되지 않기 때문입니다. 솔루션은 코드를 MySQLI 또는 PDO 로 마이그레이션하는 것입니다. 이는 오류보고를 피할뿐만 아니라 더 강력한 기능과 더 나은 보안을 즐기는 것입니다.
프로젝트가 여전히 이전 MySQL_* 함수를 사용하는 경우 가능한 빨리 새로운 확장으로 업데이트하여 호환성과 유지 관리를 보장하는 것이 좋습니다.