【发布时间】:2016-03-03 03:21:25
【问题描述】:
如果我无法连接到数据库(例如 xamp 关闭或数据库连接关闭等),我会尝试捕获错误。我尝试使用PDO::errorCode(),但没有产生任何结果。
在我的 php 中,我有一个 connection.php 和一个方法 ' 可以多次连接到数据库并返回一个新的 PDO 实例以实现各种查询。响应显示错误消息,然后显示调用它的所有 php 查询,其中还包括非加密格式的数据库的名称和密码。
- 如何捕获此错误并将此错误消息替换为人类可读的替代方案(不显示名称和密码)?
连接.PHP
function connect()
{
// set database server access variables:
$host = "localhost";
$user = "root";
$pass = "password";
$dbase = "dbName";
//Establish a connection
$db = new PDO("mysql:host=".$host."; dbname=".$dbase."", $user, $pass); //line 16
$db -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
return $db;
}
回应
致命错误:带有消息的未捕获异常“PDOException” 'SQLSTATE[HY000] [2002] 无法建立连接,因为目标 机器主动拒绝了。 ' 在 D:\Users\Username\Dropbox\Web\htdocs\sitename\php\data\connection.php:16 堆栈跟踪:#0 D:\Users\Username\Dropbox\Web\htdocs\sitename\php\data\connection.php(16): PDO->__construct('mysql:host=loca...', 'root', 'password') #1 D:\Users\Username\Dropbox\Web\htdocs\sitename\php\function\active-user.php(28): 连接()#2 D:\Users\Username\Dropbox\Web\htdocs\sitename\map-floorplan.php(10): include('D:\Users\Username...') #3 {main} 抛出 D:\Users\Username\Dropbox\Web\htdocs\sitename\php\data\connection.php 第 16 行
【问题讨论】:
标签: php mysql oop pdo exception-handling