错误数据库与用户和密码信息的连接

时间:2011-07-13 17:23:58

标签: mysql database zend-framework

我与数据库有连接,每次连接出现问题时都会收到此错误。

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003] Can't connect to MySQL server on '205.178.146.104' (4)' in /data/18/2/77/115/2566441/user/2813515/htdocs/ZendFramework-1.11.5/library/Zend/Db/Adapter/Pdo/Abstract.php:129 
Stack trace: 
#0 .../ZendFramework-1.11.5/library/Zend/Db/Adapter/Pdo/Abstract.php(129): PDO->__construct('mysql:dbname=si...', 'xxx', 'xxx', Array) 
#1 .../ZendFramework-1.11.5/library/Zend/Db/Adapter/Pdo/Mysql.php(96): Zend_Db_Adapter_Pdo_Abstract->_connect() 
#2 .../ZendFramework-1.11.5/library/Zend/Db/Adapter/Abstract.php(459): Zend_Db_Adapter_Pdo_Mysql->_connect() 
#3 .../ZendFramework-1.11.5/library/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('DESCRIBE `user`', Array) 
#4 .../ZendFramework-1.11.5/library/Zend/Db/Adapter/Pdo/Mysq in .../ZendFramework-1.11.5/library/Zend/Db/Adapter/Pdo/Abstract.php on line 144

问题是数据库用户和密码在错误消息中的页面上可见。有没有办法阻止PHP显示该信息?或者这是因为我建立了一个开发而不是生产?

2 个答案:

答案 0 :(得分:2)

这是两者的结合。在开发过程中,您会显示错误。这是你看到的主要原因。

但是,您可以通过在查询之前测试连接来catch异常。允许您处理自己的连接失败。

try {
    Zend_Db_Table::getDefaultAdapter()->getConnection();
} catch (Zend_Exception $e) {
    throw new Zend_Exception("A different error");
}

答案 1 :(得分:1)

这是因为你正在“开发”(浏览器中显示例外)

  • 解决方案1:使用生产环境;)
  • 解决方案2:更改application.ini
  • 中的设置
  • 解决方案3:使用try / catch块进行数据库连接