簡體   English   中英

為什么mysqli_connect()是我的PHP服務器上的“未定義函數”?

[英]Why is mysqli_connect() an “undefined function” on my PHP server?

我在Linux服務器上使用PHP版本5.3.3。 當我嘗試使用mysql_connect()或mysqli_connect()到達數據庫時,出現錯誤消息:

致命錯誤:調用未定義函數mysql_connect()

要么

致命錯誤:調用未定義函數mysqli_connect()

您可以在此處查看我的測試頁面: http : //gorp.osg.ufl.edu/BOT3151/testing.php

您可以在此處查看phpinfo頁面: http : //gorp.osg.ufl.edu/phptest.php

相關的配置命令在這里:

'--with-mysql=shared,/usr' '--with-mysqli=shared,/usr/lib64/mysql/mysql_config' '--with-pdo-mysql=shared,/usr/lib64/mysql/mysql_config'

它還表示正在解析這些.ini文件:

/etc/php.d/mysql.ini /etc/php.d/mysqli.ini

php.ini文件還包括以下幾行:

extension=mysql.so extension=mysqli.so

那么,這里出了什么問題? 服務器上未正確安裝mySQL嗎? 我怎樣才能解決這個問題?

附錄:我應該解釋說這是在我不管理的共享服務器上。 我只能通過SFTP訪問服務器上的文件夾。 但是我確實有一個php.ini文件,並且我有一個擴展文件夾。 那么,這是我可以自己解決的問題,還是需要服務器管理員的幫助?

嘗試通過以下方式安裝PHP MySQL:

apt-get install php5-mysql

然后,可以使用PHP和Apache設置輕松設置MySQL。 如果已經安裝了MySQL,則可以先將其卸載,然后嘗試在終端中通過以上代碼安裝PHP MySQL。

這是最簡單的方法,無需任何設置。

未加載“ mysqli”擴展名。 您無法在phpinfo()文件中看到此部分。

http://gorp.osg.ufl.edu/phptest.php

您應該在該頁面上看到以下內容: https : //drive.google.com/open?id=0B7VdYIkRLxQWaDRLYVNLeU84am8

僅因為您取消注釋了extension=mysqli.so ,並不意味着它將加載。 mysqli.so文件可能不在PHP所尋找的文件夾中,或者根本不存在。

在您的php.ini文件中檢查“ extension_dir”。 然后去看看文件mysqli.so是否實際存在。

您是否重新啟動了Web服務器?

鑒於您的PHP信息頁面未列出顯示MySQL配置的部分,因此可以推斷可能未在您的服務器上安裝MySQL。

我面臨着類似的問題。 php.ini文件中的默認值存在一些問題。 如果以上給出的答案未能解決您的問題,請查看答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM