指定されたユーザー名、パスワード、およびデータベース ホストを使用してデータベースに接続できるかどうかを確認したいと思います。
これまでのところ、私は試していました:
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
$conndatabase = mysql_select_db($dbname);
if(!mysql_ping($conn) || !$conndatabase){
//do something when cant connect
} else {
//do something when you connected
}
$dbname
このデータベースを選択できないため、悪いと機能します。しかし、間違ったホスト、ユーザー名、またはパスワードを入力すると、エラーのある白いページが表示されます。例えば:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'rootx'@'localhost' (using password: YES) in C:\xampp\htdocs\strony\planer\config\opendb.php on line 6
Warning: mysql_ping() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\strony\planer\grupy.php on line 3
質問:
指定されたデータを使用してエラーなく接続できるかどうかを確認する方法はありますか? 到達する前にエラーが発生するだけですmysql_ping()
編集
マイク・ブラントのソリューションを試した後、間違って説明できたと思います。データベースに接続しようとしていますが、許可されれば、アクセスしたいユーザーページが表示されますが、それが不可能な場合は、データベース情報を変更するために別のページにリダイレクトされます。
if(!$conndatabase){
header('Location: index.php');
}
データベースが存在するかどうかを確認するためにそれを使用しています。しかし、私が試しif(!$conn)
たり、似たようなことをしたりしても、手遅れです。エラーが表示されたから$conn = mysql_connect($dbhost, $dbuser, $dbpass)
です。だから私はリダイレクトできません。
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost'~~
Warning: Cannot modify header information - headers already sent by~~