我已經設置了PHP,MySQL和Apache。 localhost()
爲PHP,它運作良好。但是在我下載MySQL之後,它會報告:致命錯誤:調用未定義函數mysql_connect()
Fatal error: Call to undefined function mysql_connect()
我該如何解決這個問題?
我已經設置了PHP,MySQL和Apache。 localhost()
爲PHP,它運作良好。但是在我下載MySQL之後,它會報告:致命錯誤:調用未定義函數mysql_connect()
Fatal error: Call to undefined function mysql_connect()
我該如何解決這個問題?
驗證您的PHP安裝是否已通過mysql支持編譯。創建一個包含<?php phpinfo(); exit(); ?>
的測試網頁並將其加載到瀏覽器中。搜索MySQL的頁面。如果你沒有看到它,你需要重新編譯支持MySQL的PHP,或者重新安裝一個內置的PHP包。
這裏是你從http://www.somacon.com/p109.php –
複製的來源是他的幫助! –
我有類似的問題,我的測試頁中沒有看到任何MySQL:https://jsfiddle.net/ad0gd90y/。相反,我只看到「mysqlnd」。我應該在PHP之前安裝MySQL嗎?如何用MySQL支持重新編譯PHP?@RohitKumarChoudhary – rosemary
打開你的終端並運行下面的命令。
sudo apt-get install mysql-server
如果您正在運行PHP,你還需要安裝PHP模塊針對MySQL的5:
sudo apt-get install php5-mysql
我的解決辦法是在這裏(我需要的,除去最後一個斜線(注:反斜槓)從PHPIniDir 'c:\PHP\'
):Fatal error: Call to undefined function mysql_connect() cannot solve
使用是在Windows 8 N這個問題得到了通過更改環境變量
後續解決這些步驟: 打開我的電腦屬性 - >高級系統設置 - >環境變量。 在'系統變量'下,選擇'路徑'並點擊'編輯' 在'變量值'中,添加'C:\ php;'或者php安裝的路徑。
單擊確定並應用設置並重新啓動系統。 它應該工作。
PHP.INI
檢查,如果你忘了激活以下選項(加載模塊等等的MySQL):
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "ext"
我有同樣的問題上RHEL6。事實證明,/etc/php.d中的mysql.ini文件只有一個模塊名稱,但需要一個完整的路徑名。在我的RHEL6系統,該系統的工作原理的條目是:
; Enable mysql extension module
extension=/usr/lib64/php/modules/mysql.so
修改文件後,我重新啓動Apache和一切工作。
如果升級到PHP 7.0後出現此錯誤,那麼您使用的是不推薦使用的庫。
mysql_connect — Open a connection to a MySQL Server
Warning
This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used.
這應該被標記爲接受的答案 - 仍然使用mysql_ *調用是不好的做法。 – Skytiger
使用 「mysqli_connect」
$con = mysqli_connect("127.0.0.1","root","pass","your_database");
將要去工作,我定這個我的問題。
檢查是否mysqli的模塊安裝到您的PHP版本
$ ls /etc/php/7.0/mods-available/mysql*
/etc/php/7.0/mods-available/mysqli.ini /etc/php/7.0/mods-available/mysqlnd.ini
啓用模塊
$ sudo phpenmod mysqli
此代碼可以幫助你
<?php
$servername = "localhost";
$username = "root";
$password = "";
$con = new mysqli($servername, $username, $password);
?>
但是改變 「服務器名稱」, 「用戶名」和「密碼」
這裏是一個快速修復:
所有的專業人士可能會恨我這個答案。但是我在服務器上遇到了同樣的錯誤:致命錯誤:未捕獲錯誤:調用未定義的函數mysql_connect()正在使用PHP 7.沒有時間重寫所有mysql代碼,因此如果有人需要快速臨時修復它是在CPANEL尋找PHP配置並將該帳戶的版本更改爲類似PHP 5.4而不是PHP 7。然後代碼工作正常,沒有上述錯誤。
一個解決辦法是在整個應用程序使用的適配器功能,如這些開始使用mysqli
代替mysql
:當你使用你的代碼行mysql_connect
所以只需添加
if (!function_exists('mysql_connect')) {
function mysql_connect($host = '', $user = '', $password = '', $database = '', $port = 0, $socket = '') {
return mysqli_connect($host, $user, $password, $database, $port, $socket);
}
}
if (!function_exists('mysql_select_db')) {
function mysql_select_db($link, $dbname) {
mysqli_select_db($link, $dbname);
}
}
的問題顯示出來它在mysqli_cOnnect
,它將解決問題。
您還必須在整個代碼行中使用mysqli
,否則問題將再次出現。
示例mysql_select_db
然後將是mysqL_select_db
。
這是選擇數據庫。
感謝希望這有助於
此錯誤是隻來爲你的PHP版本V7.0。 你可以使用PHP V5.0 其他
使用它
mysqli_connect("localhost","root","")
我從MySQL只取得了mysqli的
你安裝的軟件包之後重新啓動了Apache避免這些? – Devator
http://nz.php.net/manual/en/mysql.installation.php – zerkms
您標記了您的問題[mysql-error-1064] - 如果您的腳本無法與MySQL通信,您怎麼看? – Repox