2014-02-15 193 views
0

我從Windows計算機上的Xamp移動到Mac上的Mamp。而Php版本則從5.4.19移到5.5.3。 我導出和導入我的Mysql數據庫,它工作正常。但是,當我共進午餐.PHP在XAMP完美的工作文件,他們現在給我的錯誤,如下面的虛擬服務器更改

Notice: Use of undefined constant “root†- assumed '“rootâ€' in /Applications/MAMP/htdocs/2_Documents/upload.php on line 20 

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /Applications/MAMP/htdocs/2_Documents/upload.php on line 20 

Warning: mysql_connect(): Access denied for user 'root'@'localhost' (using password: YES) in /Applications/MAMP/htdocs/2_Documents/upload.php on line 20 
Access denied for user 'root'@'localhost' (using password: YES) 

它似乎是一個問題是,mysql_connect()函數的事實:在舊服務器上的工作不再被接受。 如何順利管理腳本升級?沒有寫回所有的代碼?

+0

檢查數據庫連接的密碼是否不同或相同。而且,我強烈建議使用mysqli或PDO。 –

+0

使用mysqli代替mysql .. – Hardy

+0

PHP 5.5.x以上的mysql函數已被棄用。您必須降級至5.3.x或使用PDO或mysqli重新編寫應用程序。 – Mir

回答

0

你有一個不同的PHP配置,顯示警告,你可能以前壓制過。很可能你現在也使用更新的PHP版本。

  • 第一個通知是關於在嚴格模式下的語法錯誤,您可能忘記了文字字符串周圍的引號。 可能也表示字符編碼問題,但我們無法用您提供的少量信息分辨。
  • 第二個不言而喻:舊的mysql擴展已被棄用。將您的代碼移植到更新(更安全)的mysqli擴展或PDO。開始使用「準備好的語句」來防止諸如「sql注入」之類的安全問題。請教谷歌的例子或優秀的PHP文檔。
  • 關於連接錯誤:我們可以說關於您的憑據的東西......看起來您使用了完全打開的mysql服務器和舊系統上的mysql root帳戶。你不應該那樣做。顯然,新系統在這方面稍微封閉一點,這是一個好主意。

當你解決這些問題時,你應該重新配置php,不要顯示錯誤和警告,因爲它們會破壞你的輸出。改爲使用phps日誌記錄工具,尤其是在生產站點。