【发布时间】:2015-08-20 19:48:54
【问题描述】:
每当我的网站收到太多连接时,它就会显示我的数据库信息。
我已经明确告诉 PDO 不要使用 PDO::ERRMODE_SILENT 显示任何错误消息:
$dsn = "mysql:host=" . $database['host'] . ";dbname=" . $database['db'];
$dbh = new PDO($dsn, $database['user'], $database['pass'], array(PDO::ATTR_PERSISTENT => false));
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); // <== add this line
//echo 'Connected to Database<br/>';
此外,我还禁用了 PHP 错误:
error_reporting(0);
ini_set('display_errors', '0');
当连接太多时,为什么我的 PDO 会向所有人显示我的敏感数据库信息?
【问题讨论】:
-
究竟显示了什么?
-
@Dagon "SQLSTATE[HY000] [1040] Too many connections" 然后是我的数据库信息。
-
嗯,我还在学习 PDO,并且非常希望用另一种方法来解决我的问题。
-
首先,永远不要将错误模式设置为静默。您总是希望记录错误。但它们不应该显示,因此您可以将其关闭(不过,我会使用 php.ini 或 .htaccess 全局执行此操作。除此之外,您还应该考虑对查询使用异常处理。