web-dev-qa-db-ja.com

非推奨の関数mysql_connectの代替

だから私はこのアマゾンウェブサービスデータベースをすべて設定しました

私はそれを使用することを計画しているアプリケーションの古いチュートリアルに取り組んでいます。

Mysql_connectを調べたときに廃止されていることに気付きました。

代替として何を使用できますか? Amazonデータベースに接続するにはどうすればよいですか?

<?
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

どの資格情報を使用しても。また、Amazonのコードサンプルがまったく異なる方法で接続していることを示すのにも役立ちません。

10
Houseman

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);
}
11
Juan Mendes

表示されるエラーメッセージは、mysql_connectの廃止とは無関係です。使用しているMySQLユーザー名とパスワード(コードの「ユーザー名」と「パスワード」)が間違っています。正しい値がわからない場合は、インストールしたMySQLのバージョンのドキュメントを確認してください。 (ユーザーおよび/またはデータベースを作成する必要がある場合があります。)

他のいくつかの人が言及したように、mysql拡張機能のサポートされる代替は mysqli および PDO MySQL です。

5
duskwuff

MysqlI(改良されたmysql)はmysqlの後継です。

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

MySQL拡張の簡単な代替手段の1つはMySQLiです。の代わりに

mysql_connect("Host", "username", "password") 

...を使用して接続できます。

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

この役立つチュートリアルを読む価値があるでしょう: http://phpmaster.com/avoid-the-original-mysql-extension-1/

1
nickisme

マニュアルでは、mysqliを代替として提案しています http://php.net/manual/en/book.mysqli.php