php - PDO 以静默方式测试连接

标签 php mysql pdo

有没有办法可以在使用连接参数建立连接之前验证它们,或者关闭警告,以便我可以自己处理错误? (顺便说一下,ERRMODE_SILENT 不起作用)

我希望我的应用程序能够处理错误,而不是在输出中显示它们。这是构造函数的一部分:

 try {
    $this->pdo = new PDO("mysql:host=$db_host;port=$db_port;dbname=$db_name", $db_user, $db_pass);
    $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);

 } catch (PDOException $e){
    $this->connEstablished = false;
    $this->error = $e->getMessage();
 }

最佳答案

检查 php.ini 中的“display_errors”设置。请参阅PHP configuration file文档。

如果“display_errors”为“On”,则它将向浏览器输出任何错误或警告。将其设置为“关闭”可以防止这种情况发生,并且几乎总是一个好主意。

这是通过 php.ini 控制的,但也可以在运行时使用内置函数 ini_set 进行更改,如果您无法控制环境(使用托管服务器),这会很有用等)

您可以使用 ini_get('display_errors') 检查当前值,并使用 ini_set('display_errors', 'Off') 将其关闭。

关于php - PDO 以静默方式测试连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31495609/

相关文章:

mysql - 如何选择那些不同的行,其中非值是非正数

mysql - 需要根据另一个表的结果更新表

php - 仅显示 10 条记录,然后单击按钮显示所有记录

php - 在 php 中连接 mysql 列值

php - 使用 PHP 获取 USPS 订单跟踪状态

python - 如何将 utf-8 字符从 python 保存到 mySQL

php - 根据用户输入的第一个字符返回 PDO 查询

php - 使用 Eloquent 访问多个级别的多对多子级

php - 如何解决这个数字加倍和减半的问题?

php - 尝试获取要在发送给用户的电子邮件信息中显示的记录 ID