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

王林
發布: 2023-06-22 15:34:01
原創
1616 人瀏覽過

在使用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服務使其生效。

以上是PHP Fatal error: Call to undefined method mysqli::stmt_init()的解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板