2014-02-15 39 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日志记录工具,尤其是在生产站点。