ホームページ >バックエンド開発 >PHPチュートリアル >PHP 致命的エラーの解決策: 未定義メソッド mysqli::stmt_init() の呼び出し

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

王林
王林オリジナル
2023-06-22 15:33:171635ブラウズ

MySQL データベース操作に PHP を使用すると、「PHP 致命的エラー: 未定義メソッド mysqli::stmt_init() の呼び出し」というエラーがよく発生します。このエラーは通常、PHP が MySQL 拡張ライブラリまたは MySQL を正しくロードしていないことが原因です。拡張ライブラリのバージョンに互換性がないことが原因です。この記事では、この問題を解決する方法を説明します。

ステップ 1: PHP が MySQL 拡張ライブラリを正しくロードしているかどうかを確認する

PHP では、phpinfo() 関数を通じて現在の PHP 構成情報を表示できます。ターミナルを開き、次のコマンドを入力して現在の PHP 構成情報を表示します:

php -r "phpinfo();"

このコマンドを実行すると、PHP 構成情報が出力されます。MySQL 拡張ライブラリがロードされているかどうかを確認する必要があります。

Ctrl F を使用して mysqli を検索できます。見つからない場合は、MySQL 拡張ライブラリがロードされていないことを意味します。最初に MySQL 拡張ライブラリをインストールする必要があります。

ステップ 2: MySQL 拡張ライブラリをインストールする

実際の状況に応じて、次の 2 つの方法で MySQL 拡張ライブラリをインストールできます。

方法 1:コマンド ライン MySQL 拡張ライブラリをインストールする

Ubuntu/Debian システム

sudo apt-get update
sudo apt-get install php-mysql

CentOS/RHEL システム

sudo yum update
sudo yum install php-mysql

方法 2: MySQLi 拡張機能を手動でコンパイルしてインストールする

上記のコマンドが失敗した場合 実行時に、拡張機能を手動でコンパイルしてインストールすることを選択できます。 Ubuntu システムを例に挙げます:

sudo apt-get update
sudo apt-get install php7.2-dev libmysqlclient-dev
sudo pecl channel-update pecl.php.net
sudo pecl install mysqlnd_ms

上記のコマンドの php7.2-dev は、現在使用されている PHP バージョンに変更する必要があることに注意してください。libmysqlclient-dev がインストールされている必要があります。インストールされていない場合は、正常にコンパイルされません。

インストールが完了したら、次の構成情報を php.ini に追加する必要があります:

extension=mysqlnd_ms.so

ステップ 3: Apache サービスを再起動します

MySQL 拡張機能のインストール後ライブラリを有効にするには、Apache サービスを再起動する必要があります。

Ubuntu/Debian システム

sudo /etc/init.d/apache2 restart

CentOS/RHEL システム

sudo systemctl restart httpd

上記の 3 つの手順を完了した後、再度プログラムを実行すると正常に接続できるようになり、MySQLデータベースが動作します。

概要:

PHP を使用して MySQL データベースを操作すると、「PHP 致命的エラー: 未定義メソッド mysqli::stmt_init() の呼び出し」というエラーが発生しやすくなります。このエラーは通常、これは、PHP が MySQL 拡張ライブラリを正しくロードしていないか、MySQL 拡張ライブラリのバージョンに互換性がないことが原因で発生します。この問題に対処するには、phpinfo() 関数によって返された情報を確認することで、MySQL 拡張ライブラリが正しくロードされているかどうかを確認できます。正しくロードされていない場合は、コマンド ラインまたは手動で MySQL 拡張ライブラリをインストールする必要があります。コンパイルしてインストールします。インストールが完了したら、Apache サービスを再起動して有効にする必要があります。

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

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