2013-05-13 98 views
9

所以我有这个亚马逊网络服务数据库全部设置替代弃用功能mysql_connect

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

我注意到的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 

不管我用什么凭据。 这也不能帮助亚马逊的代码示例显示您以完全不同的方式进行连接。

+0

有你两个选择 - 要么在[这个问题]提到的选项(http://stackoverflow.com/questions/13569 /库MySQLi-或-PDO - 什么 - 是最优点和禁忌症)。是的,如果AWS文档使用'mysql'库示例,那么它们不应该! ':)'。 – halfer 2013-05-13 21:18:03

回答

10

The documentation for PHP says

This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used.

$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); 
} 
4

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

正如其他人所提到的,支持的mysql扩展替代方案是mysqliPDO MySQL

1

MysqlI(mysql改进)是mysql的后继者。

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

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

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

...您可以使用例如

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

这可能是值得一读这是很有帮助的教程: http://phpmaster.com/avoid-the-original-mysql-extension-1/