是否有任何方法可以强制数据库连接错误,以便我可以测试PHP代码的错误处理?我们知道,对于PDO,存在很大的风险,即错误的错误处理可能导致完整的追溯记录显示在屏幕上,从而可能泄露数据库的用户名和密码(如php.net » pdo connections所警告)。
我一直试图有意强迫这种情况发生(通过重命名为虚构的数据库表等),但我还没有得到结果。还有其他模拟数据库问题的方法吗?
我在运行Apache的共享主机上具有Cpanel访问权限。
仅提供不正确的凭据。重命名表几乎没有帮助,因为连接中不涉及表。改为更改host
,username
或password
。
错误处理不当会导致完整的追溯轨迹显示在屏幕上,
这是一个非常适当的问题。
但是,解决方案非常简单
display_errors
配置指令设置为0。基本上需要
try {
$pdo = new \PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}