我很想检查我是否可以使用给定的用户名、密码和数据库主机连接到数据库。
到目前为止,我正在尝试:
$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()
编辑
在尝试了 Mike Brant 解决方案之后,我想我可能解释错了。我正在尝试连接到数据库,如果它允许我,它会显示他想要访问的用户页面,但是当它不可能时,它会将他重定向到另一个页面,以修改数据库信息。
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~~