php - mamp



PHP/Apache:PHP致命錯誤:調用未定義的函數mysql_connect() (5)

Apache模塊PHP版本可能出於某些奇怪的原因而沒有把php.ini文件作為CLI版本我建議好好看看:

  • 通過網頁在php -iphpinfo()之間存在差異的.ini文件中的任何差異*
  • 如果沒有差​​異則查看mysql.so.ini文件的權限但我認為Apache以root用戶身份解析這些權限

要在這裡非常清楚,不要去搜索文件系統上的php.ini文件,看看PHP說它在看什麼

https://ffff65535.com

我在Fedora 15計算機(64位)上運行MySQL(5.5.23社區服務器),Apache(2.2)和PHP(5.3.13)。 每個工作都沒有問題。

我認為PHP已配置/編譯為與MySQL一起使用,但是當我嘗試加載任何進行MySQL調用的PHP網頁時,我得到了上述致命錯誤(在Apache錯誤日誌中)。 PHP可以通過Apache和命令行自行運行。

當我從命令行運行php -i時,確定它顯示了所有MySQL的零碎,但當我加載顯示phpinfo()的頁面時,則沒有提到的MySQL模塊。

我也嘗試在php.ini中取消註釋“extension = mysql.so”,但PHP然後抱怨“PHP啟動:無法加載動態庫'/usr/lib64/php/modules/mysql.so'." (即使模塊確實駐留在那裡)。 但是,我不完全確定該行是否需要不被評論。 [更正:聲明的錯誤實際上是由於拼寫錯誤,但是從命令行運行表明該模塊已經加載了 - 但是有一條來自PHP的警告說明了這一點。]

我也禁用了SELinux; 多次停止/重啟Apache; yummed MySQL-Devel,以防它有任何區別; 似乎還有其他可能的事情。

如果我從命令行運行一個小的PHP測試腳本,訪問MySQL數據庫,那麼它沒有問題,所以PHP確實知道MySQL,但是當它在Apache下運行時,它似乎不知道MySQL甚至存在。

幾個月來我一直在努力解決這個問題,似乎已經嘗試了一切,但似乎沒有任何效果。

我不介意重新安裝PHP,如果我真的需要,如果有人可以演示配置/編譯MySQL支持的正確方法,那麼我可以讓它在Apache下工作,雖然理想情況下我只是喜歡讓現有的安裝工作。

非常感謝您的任何幫助!


mysql deamon應該正在運行。

如果沒有試試這個:

#/etc/init.d/mysql start

或這個:

#service mysqld start

如果你想在啟動時添加mysql:

# chkconfig --add mysqld
# chkconfig -- level 235 mysqld on

如果是,並且仍然無法正常運行,請嘗試以下操作:

取消註釋/etc/php/php.ini中的以下行

extension=mysqli.so
extension=mysql.so

請查看“/usr/lib64/php/modules/msql.so”上面帖子。 應該是mysql.so (如果輸入錯誤則忽略它......)


怎麼樣

sudo yum安裝php-mysql

要么

sudo apt-get install php5-mysql


我收到了類似的錯誤消息。 想想我在php.ini文件的第一行開頭無意中輸入了“9o”。 刪除後,我不再收到“致命錯誤”消息。 希望這可以幫助。


請記住,從PHP 5.5.0開始,不推薦使用mysql_connect()函數,並且在PHP 7中完全刪除了它

更多信息可以在php文檔中找到:

引用:

警告
此擴展在PHP 5.5.0中已棄用,並且已在PHP 7.0.0中刪除。 相反,應該使用MySQLi或PDO_MySQL擴展。 另請參閱MySQL:選擇API指南和相關的常見問題解答以獲取更多信息。 該功能的替代方案包括:
* mysqli_connect()
* PDO :: __ construct()





apache