2013-05-13 96 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/