當前位置: 首頁>>技術教程>>正文


php – 未定義函數 mysql_connect()

, , , ,

問題描述

我已經運行了aptitude install php5-mysql(並重新啟動了MySQL /Apache 2),但是仍然出現此錯誤:

Fatal error: Call to undefined function mysql_connect() in /home/validate.php on line 21

phpinfo()表示/etc/php5/apache2/conf.d/pdo_mysql.ini文件已被解析。

最佳方案

好吧,這是你的機會!看來PDO已經準備好;用它代替。

嘗試檢查是否正在加載PHP MySQL擴展模塊:

<?php
    phpinfo();
?>

如果不存在,請將以下內容添加到php.ini文件:

extension=php_mysql.dll

次佳方案

我看到您使用Ubuntu對此進行了標記。很可能未安裝MySQL驅動程序(可能還有MySQL)。假設您具有SSH或終端訪問權限和sudo權限,請登錄服務器並運行以下命令:

sudo apt-get install mysql-server mysql-client php5-mysql

如果已經安裝了MySQL軟件包或php5-mysql軟件包,它將對其進行更新。


更新

由於此答案偶爾仍然會引起單擊,因此我將對其進行更新,使其包括PHP7。PHP7需要MySQL的其他程序包,因此您將需要對apt-get命令使用其他參數。

sudo apt-get install mysql-server mysql-common php7.0 php7.0-mysql

重要的是,自PHP v5.5.0起不推薦使用mysql_connect()。請參閱此處的官方文檔:PHP: mysql_connect()

第三種方案

如果您已經在使用PHP7,則先前已棄用的函數mysql_*被完全刪除,因此您應該使用PDO-functions或mysqli_*函數來更新代碼。

如果不可能,作為解決方法,我創建了一個小的PHP包含文件,該文件使用mysqli_*()重新創建了舊的mysql_*函數-functions:fix_mysql.inc.php

第四種方案

如果有人來到這裏遇到docker php official images的問題,請在docker容器內鍵入以下命令。

$ docker-php-ext-install mysql mysqli pdo pdo_mysql

有關更多信息,請參閱How to install more PHP extensions部分上方的鏈接(但對我來說有點難…)。

否則此文檔可能會對您有所幫助。

https://docs.docker.com/samples/library/php/

第五種方案

我也遇到了undefined MySQL_connect()的問題。我試圖在PHP.ini文件中進行更改,但它給了我同樣的錯誤。然後,我來到了這個解決方案,將代碼從折舊的php函數更改為新函數。

$con=mysqli_connect($host,$user,$password);

mysqli_select_db($con,dbname); 
//To select the database

session_start(); //To start the session

$query=mysqli_query($con,your query); 
//made query after establishing connection with database.

我希望這能幫到您 。該解決方案對我來說是正確的。

編輯:

如果您從舊版php升級到apt-get install php7.0-mysql

第六種方案

嘗試:

<?php
  phpinfo();
?>

運行頁麵並搜索mysql。如果未找到,請在 shell 程序中運行以下命令,然後重新啟動Apache服務器:

sudo apt-get install mysql-server mysql-client php5-mysql

另外,請確保您在apache2.conf(或conf.d /php.ini)文件中的某處未注釋以下所有行,從

;extension=php_mysql.so

extension=php_mysql.so

第七種方案

在php.ini文件中

改變這個

;extension=php_mysql.dll

進入

extension=php_mysql.dll

第八種方案

我的猜測是您的PHP安裝未使用MySQL支持進行編譯。

檢查您的配置命令(php -i | grep mysql)。您應該看到類似'--with-mysql=shared,/usr'的內容。

您可以在http://php.net/manual/en/mysql.installation.php中查看完整的說明。雖然,我寧願使用@wanovak提出的解決方案。

不過,我認為您需要MySQL支持才能使用PDO。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/9830.html,未經允許,請勿轉載。