ホームページ  >  記事  >  バックエンド開発  >  PHP 致命的エラーの解決策: 未定義メソッド mysqli::prepare() の呼び出し

PHP 致命的エラーの解決策: 未定義メソッド mysqli::prepare() の呼び出し

WBOY
WBOYオリジナル
2023-06-23 11:21:381715ブラウズ

mysqli 拡張機能を使用して MySQL データベースに接続して操作すると、「PHP 致命的エラー: 未定義メソッド mysqli::prepare() の呼び出し」というエラーが発生することがあります。このエラーは通常、次の理由によって発生します:

  1. PHP には mysqli 拡張機能のサポートが不十分です;
  2. mysqli 拡張機能が正しく読み込まれていない、または正しく構成されていません;
  3. PHPコードに構文エラーがあります;
  4. MySQL サーバーが正しく構成されていないか、実行中です;

これらの理由から、解決策を以下に紹介します。

  1. PHP の mysqli 拡張機能のサポートを確認する

まず、PHP で mysqli 拡張機能が有効になっているかどうかを確認する必要があります。 phpinfo() 関数を通じて、mysqli 拡張機能に関する PHP 情報を取得できます。方法は次のとおりです。

1) phpinfo.php という名前の php ファイルを作成し、その中に次のコードをコピーします。

<?php
phpinfo();
?>

2) この php ファイルをルート ディレクトリにアップロードします。 Web サイトにアクセスし、ブラウザに http://yourdomain.com/phpinfo.php と入力してファイルにアクセスします;
3) PHP 情報ページで、「mysqli」拡張機能がロードされているかどうかを確認します。そうでない場合は、php.ini ファイルで mysqli 拡張機能を有効にする必要があります。

  1. mysqli 拡張機能の構成

mysqli 拡張機能がサポートされていることを確認しても、PHP 致命的エラー: 未定義メソッドの呼び出し mysqli::prepare() エラーがまだ発生する場合が発生した場合は、mysqli 拡張機能の構成が正しいかどうかを確認する必要があります。

まず、mysqli 拡張機能が正しくロードされているかどうかを確認します。 PHP 設定ファイル php.ini で次のコードを探すことで確認できます。

extension=mysqli.so

上記のコードが見つからない場合は、mysqli 拡張機能をロードする必要があります。 php.ini のパスに設定します。

次に、データベースへの接続時に使用されるパラメータが正しいかどうかを確認する必要があります。通常、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);
  1. PHP コード構文の確認

mysqli 拡張機能を使用する場合、PHP コードに構文エラーがあると、PHP 致命的エラーも発生します。 : 未定義メソッド Mysqli::prepare() の呼び出しエラー。したがって、コードに構文エラーがないかチェックする必要があります。

コード エディターまたは IDE ツールを使用して構文をチェックし、特にセミコロンの欠落や中括弧の不一致などがないかどうかを確認できます。

  1. MySQL サーバーを確認する

上記の対策でも問題が解決できない場合は、MySQL サーバーが実行中であり、正しく構成されているかどうかを確認する必要があります。

まず、MySQL サーバーが起動しているかどうかを確認します。次のコマンドを使用してターミナルで確認できます:

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 致命的エラー: 未定義メソッド mysqli::prepare() への呼び出し」というエラーが発生した場合は、まず PHP が mysqli 拡張機能をサポートしているかどうかを確認する必要があります。 mysqli 拡張機能が正しくロードおよび構成されているかどうか、PHP コードに構文エラーがなく、MySQL データベースが正しく構成されているかどうか。上記の問題が解決されて初めて、他の問題のトラブルシューティングを続けることができます。

以上がPHP 致命的エラーの解決策: 未定義メソッド mysqli::prepare() の呼び出しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。