2012-10-18 73 views
3

我试图连接到数据库,如果有什么错我抛出一个异常:获得一个“友好”的错误消息的异常

class Ex_cnt extends Exception{} 
class Ex_slct extends Exception{} 
$server = "localhost"; 
$usr = "root"; 
$pss = "*******"; 
$db = "learn"; 
try{ 
     $cnt = mysqli_connect($server,$usr,$pss); 
     if(!$cnt){ 
      throw new Ex_cnt("wrong in database details"); 
     } 
     $dbslct = mysql_select_db($db); 
     if(!$dbslct){ 
      throw new Ex_slct("wrong database name"); 
     } 
} 
catch(Ex_cnt $error_cnt){ 
     echo $error_cnt->getMessage(); 
} 
catch(Ex_slct $error_slct){ 
     echo $error_slct->getMessage(); 
} 

的问题是,这个代码显示了以下错误

警告:在D:\ xampp \ htdocs \ learn \中为mysqli_connect()[function.mysqli-connect]:(28000/1045):拒绝用户'root'@'localhost'(使用password:YES)第10行的index.php 无法连接

我希望它只是显示

无法连接

回答

3

你应该在生产环境中关闭display_errors

ini_set('display_errors', 0); 
error_reporting(E_ALL); // While error reporting should remain at full force 
-1

尝试使用:

$cnt = @mysqli_connect($server,$usr,$pss); 
+3

为了上帝的缘故!不要压制错误!这和劝告一样糟糕!此外,抑制错误不能修复连接 –

+0

失败,并显示我的错误 –

+0

@EliasVanOotegem,他的建议是什么问题? –

相关问题