10

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

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

当我查找它时,我注意到 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

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

4

5 回答 5

12

PHP的文档说

此扩展自 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);
}
于 2013-05-13T21:17:58.747 回答
5

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

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

于 2013-05-13T21:19:40.110 回答
2

MysqlI(mysql改进型)是mysql的继任者。

$Link = new mysqli($Hostname, $Username, $Password, $Database);
$Result = $Link->query('SELECT ...');
$Rows = $Result->fetch_array(MYSQLI_NUM);
于 2013-05-13T21:20:54.180 回答
1

MySQL 扩展的一种简单替代方案是 MySQLi。代替

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

...您可以使用例如连接

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

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

于 2013-05-13T21:23:11.357 回答
0

该手册建议使用 mysqli 作为替代 http://php.net/manual/en/book.mysqli.php

于 2013-05-13T21:17:49.750 回答