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 拡張ライブラリをインストールできます。
sudo apt-get update sudo apt-get install php-mysql
sudo yum update sudo yum install php-mysql
上記のコマンドが失敗した場合 実行時に、拡張機能を手動でコンパイルしてインストールすることを選択できます。 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 サービスを再起動する必要があります。
sudo /etc/init.d/apache2 restart
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 サイトの他の関連記事を参照してください。