替换已弃用的函数mysql_connect

时间:2013-05-13 21:14:20

标签: php amazon-web-services

所以我已经设置了这个亚马逊网络服务数据库

我正在为一个我正计划使用它的应用程序编写一个旧教程。

我注意到mysql_connect在我查找时已经弃用了。

我可以使用什么作为替代方案?我如何连接到我的亚马逊数据库?

<?
mysql_connect("localhost", "username", "password") or die ("Can't connect to database server");
mysql_select_db("videoRecorderDemo") or die ("Can't select database");
mysql_query("SET NAMES 'utf8'");
?>

我收到此错误:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'username'@'192.168.1.1' (using password: YES) in /www/zxq.net/r/e/d/red5vptest/htdocs/utility/db.php on line 2
Can't connect to database server

无论我使用什么凭据。 亚马逊的代码示例显示您以完全不同的方式进行连接也无济于事。

5 个答案:

答案 0 :(得分:10)

The documentation for PHP says

  

自PHP 5.5.0起,此扩展程序已弃用,将来将被删除。相反,应使用MySQLiPDO_MySQL扩展名。

$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');

/*
 * This is the "official" OO way to do it,
 * BUT $connect_error was broken until PHP 5.2.9 and 5.3.0.
 */
if ($mysqli->connect_error) {
    die('Connect Error (' . $mysqli->connect_errno . ') '
            . $mysqli->connect_error);
}

答案 1 :(得分:5)

您收到的错误消息与mysql_connect的弃用无关。您正在使用的MySQL用户名和密码(代码中的“用户名”和“密码”)是错误的 - 如果您不知道正确的值,请查看您安装的MySQL版本的文档。 (您可能需要创建用户和/或数据库。)

正如其他几位提到的那样,支持的mysql扩展替代方案是mysqliPDO MySQL

答案 2 :(得分:1)

MysqlI(改进了mysql)是mysql的继承者。

$Link = new mysqli($Hostname, $Username, $Password, $Database);
$Result = $Link->query('SELECT ...');
$Rows = $Result->fetch_array(MYSQLI_NUM);

答案 3 :(得分:1)

MySQL扩展的一个简单替代方案是MySQLi。而不是

mysql_connect("host", "username", "password") 

...你可以使用例如

连接
$db = mysqli_connect("host", "username", "password");

这可能值得阅读这篇有用的教程: http://phpmaster.com/avoid-the-original-mysql-extension-1/

答案 4 :(得分:0)

手册建议将mysqli作为替代方案 http://php.net/manual/en/book.mysqli.php