>  기사  >  백엔드 개발  >  PHP 치명적인 오류에 대한 해결 방법: 정의되지 않은 메서드 mysqli::prepare() 호출

PHP 치명적인 오류에 대한 해결 방법: 정의되지 않은 메서드 mysqli::prepare() 호출

WBOY
WBOY원래의
2023-06-23 11:21:381742검색

mysqli 확장을 사용하여 MySQL 데이터베이스를 연결하고 작동할 때 때때로 PHP Fatal error: Call to undefine method mysqli::prepare() 오류가 발생합니다. 이 오류는 일반적으로 다음과 같은 이유로 발생합니다.

    mysqli 확장에 대한 지원이 충분하지 않습니다.
  1. PHP 코드에 구문 오류가 있습니다. 올바르게 구성되지 않았거나 실행 중입니다.
  2. 이러한 이유로 해결 방법이 아래에 소개됩니다.
  3. mysqli 확장에 대한 PHP 지원 확인

먼저, PHP에 mysqli 확장이 활성화되어 있는지 확인해야 합니다. phpinfo() 함수를 통해 mysqli 확장에 대한 PHP 정보를 얻을 수 있습니다. 방법은 다음과 같습니다.
  1. 1) phpinfo.php라는 이름의 PHP 파일을 만들고 여기에 다음 코드를 복사합니다.
  2. <?php
    phpinfo();
    ?>
2) 이 PHP 파일을 웹사이트의 루트 디렉터리에 업로드하고 http:/를 입력합니다. / 브라우저 /yourdomain.com/phpinfo.php에서 파일에 액세스합니다.

3) PHP 정보 페이지에서 "mysqli" 확장이 로드되었는지 확인합니다. 그렇지 않은 경우 php.ini 파일에서 mysqli 확장을 활성화해야 합니다.

mysqli 확장 구성


mysqli 확장이 지원되는 것을 확인했지만 PHP Fatal error: Call to undefine method mysqli::prepare() 오류가 계속 발생하는 경우 mysqli 확장이 지원되는지 확인해야 합니다. 올바르게 구성되었습니다.
  1. 먼저 mysqli 확장이 올바르게 로드되었는지 확인하세요. PHP 구성 파일 php.ini에서 다음 코드를 찾아 확인할 수 있습니다.
extension=mysqli.so

위 코드를 찾을 수 없으면 php.ini에서 mysqli 확장의 로딩 경로를 설정해야 합니다. .

다음으로 데이터베이스에 연결할 때 사용한 매개변수가 올바른지 확인해야 합니다. 일반적으로 mysqli 연결에는 호스트 이름, 사용자 이름, 비밀번호 및 데이터베이스 이름의 4가지 매개변수가 필요합니다. 이 4개의 매개변수가 올바르게 구성되었는지 확인하세요. 예:

$host = 'localhost';
$username = 'user';
$password = 'pwd';
$database_name = 'testdb';

$conn = new mysqli($host, $username, $password, $database_name);

마지막으로 mysqli 확장이 올바르게 구성되지 않은 경우 코드에서 mysqli 버전을 수동으로 구성해 볼 수 있습니다. 예:

$conn = new mysqli();
$conn -> init();
$conn -> options(MYSQLI_OPT_CONNECT_TIMEOUT, 5);
$conn -> real_connect($host, $username, $password, $database_name);

PHP 코드 구문 확인

mysqli 확장을 사용할 때 PHP 코드에 구문 오류가 있는 경우 PHP Fatal error: Call to undefine method mysqli::prepare() 오류가 발생합니다. . 따라서 코드에 구문 오류가 있는지 확인해야 합니다.
  1. 코드 편집기나 IDE 도구를 사용하여 구문 검사를 수행할 수 있으며, 특히 누락된 세미콜론, 일치하지 않는 중괄호 등이 있는지 확인할 수 있습니다.

MySQL 서버 확인

위의 방법으로도 문제가 해결되지 않으면 MySQL 서버가 실행 중이고 올바르게 구성되었는지 확인해야 합니다.
  1. 먼저 MySQL 서버가 시작되었는지 확인하세요. 다음 명령을 사용하여 터미널에서 확인할 수 있습니다.
  2. sudo service mysql status
MariaDB를 사용하는 경우 다음 명령을 시도할 수 있습니다.

sudo service mariadb status

MySQL 또는 MariaDB 서비스가 실행 중인 경우 MySQL 데이터베이스가 올바르게 구성되었는지 확인해야 합니다. . MySQL 클라이언트를 사용하여 MySQL 데이터베이스에 로그인하고 필요한 데이터베이스와 테이블이 존재하는지 확인할 수 있습니다.

mysql -u username -p

비밀번호를 입력하고 현재 데이터베이스를 확인하세요.

SHOW DATABASES;

데이터베이스가 목록에 없으면 수동으로 만들어야 합니다.

MySQL 서버와 데이터베이스를 올바르게 구성했다면 PHP 부분에 문제가 있을 가능성이 높습니다. PHP 코드가 mysqli 클래스와 해당 메서드를 올바르게 호출하는지 확인할 수 있습니다.

요약

mysqli 확장을 사용할 때 PHP Fatal error: Call to undefine method mysqli::prepare() 오류가 발생하면 먼저 PHP가 mysqli 확장을 지원하는지, mysqli 확장이 로드 및 구성되었는지 확인해야 합니다. PHP 코드가 올바른지, 구문 오류가 있는지, MySQL 데이터베이스가 올바르게 구성되었는지 여부입니다. 위의 문제가 제거된 경우에만 계속해서 다른 문제를 해결할 수 있습니다.

위 내용은 PHP 치명적인 오류에 대한 해결 방법: 정의되지 않은 메서드 mysqli::prepare() 호출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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