替换已弃用的函数 mysql_connect [重复]

Posted

技术标签:

【中文标题】替换已弃用的函数 mysql_connect [重复]【英文标题】:Replacement for deprecated function mysql_connect [duplicate] 【发布时间】:2013-05-08 00:43:13 【问题描述】:

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

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

我发现 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

无论我使用什么凭据。 亚马逊的代码示例向您展示了一种完全不同的连接方式,这也无济于事。

【问题讨论】:

有几个选项供您选择——this question 中提到的任何一个选项。是的,如果 AWS 文档使用 mysql 库示例,那么他们不应该这样做! :). 【参考方案1】:

The documentation for PHP says

此扩展自 PHP 5.5.0 起已弃用,将来将被删除。相反,应使用 MySQLi 或 PDO_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);

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

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

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

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

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

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于替换已弃用的函数 mysql_connect [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python 3 替换已弃用的 compiler.ast flatten 函数

用 .on 替换已弃用的 .live [重复]

Snapkit 常量替换已弃用的 .priorityMedium() .priorityHigh() .priorityLow()?

似乎无法关闭 php 中已弃用的错误

jQuery:替换已弃用的“.load()”? [复制]

推荐替换已弃用的 call_user_method?