首页 > 文章列表 > PHP Fatal error: Call to undefined method mysqli::stmt_init()的解决方法

PHP Fatal error: Call to undefined method mysqli::stmt_init()的解决方法

php error mysqli
496 2023-06-23

在使用PHP进行MySQL数据库操作时,我们常常会遇到“PHP Fatal error: Call to undefined method mysqli::stmt_init()”这个错误,这个错误通常是由于PHP未正确加载MySQL扩展库或MySQL扩展库版本不兼容导致的。在本文中我们将介绍如何解决这个问题。

第一步:检查PHP是否正确加载MySQL扩展库

在PHP中,我们可以通过phpinfo()函数来查看当前PHP的配置信息。打开终端输入以下命令查看当前PHP的配置信息:

php -r "phpinfo();"

执行完这个命令后,会输出PHP的配置信息,我们需要确认其中是否已经加载了MySQL扩展库。

可以通过Ctrl + F查找mysqli,如果未找到则表示没有加载MySQL扩展库,需要先安装MySQL扩展库。

第二步:安装MySQL扩展库

根据自己的实际情况,可以通过以下两种方式来安装MySQL扩展库:

方式一:使用命令行安装MySQL扩展库

Ubuntu/Debian 系统

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

CentOS/RHEL 系统

sudo yum update
sudo yum install php-mysql

方式二:手动编译安装 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

第三步:重启 Apache 服务

在安装MySQL扩展库后,需要重启Apache服务使其生效:

Ubuntu/Debian 系统

sudo /etc/init.d/apache2 restart

CentOS/RHEL 系统

sudo systemctl restart httpd

完成以上三个步骤后,再次运行程序,就能够正常连接MySQL数据库进行操作了。

总结:

在使用PHP进行MySQL数据库操作时,很容易遇到“PHP Fatal error: Call to undefined method mysqli::stmt_init()”这个错误,这个错误通常是由于PHP未正确加载MySQL扩展库或MySQL扩展库版本不兼容导致的。针对这个问题,我们可以通过查看phpinfo()函数返回的信息来确认是否已经正确加载MySQL扩展库,如果没有正确加载,则需要通过命令行安装或手动编译安装MySQL扩展库;在安装完成后,需要重启Apache服务使其生效。