每当我的网站收到太多连接时,它就会显示我的数据库信息。
我已经明确告诉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会在连接太多时向所有人显示我的敏感数据库信息?
答案 0 :(得分:3)
问题是您是否正在尝试连接数据库 BEFORE 您设置了silent属性。因此,在连接尝试期间,PDO仍然可以随意大声尖叫。您需要将silent指定为连接尝试本身的一部分:
$dbh = new PDO($[..snip..], array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT));
^^^^^^^^^^^