- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果连接有效,它工作得很好,但如果连接失败,PDOException 似乎实际上不起作用。捕获完全无法执行。如果失败,它会中断此行 $this->dbh = new PDO("$db_driver:host=$db_host;dbname=$db_name", $db_user, $db_pass);
的执行。所以我无法在 catch block 中获取 PDOException。我如何让它继续工作?
<?php
namespace app\Helpers;
use \PDO;
/**
* Core class which exists only once through the application
*
*/
class Core
{
public $dbh; // handle of the db connexion
private static $instance;
// constructor to create a MySQLi instance (="MySQL Improved Extension")
private function __construct()
{
$db_host = ConfigHelper::read('db.host');
$db_name = ConfigHelper::read('db.basename');
$db_user = ConfigHelper::read('db.user');
$db_pass = ConfigHelper::read('db.password');
$db_driver = ConfigHelper::read('db.driver');
try {
$this->dbh = new PDO("$db_driver:host=$db_host;dbname=$db_name", $db_user, $db_pass);
} catch (PDOException $pdoex) {
exit("Database connection failed: " . $pdoex->getMessage());
return false;
}
}
/**
* get instance of Core object
*
* @return Object self
*/
public static function getInstance()
{
if (!isset(self::$instance)) {
$object = __CLASS__;
self::$instance = new $object;
}
return self::$instance;
}
}
最佳答案
这是一个命名空间问题。
在命名空间中时,您必须通过在其前面加上反斜杠来寻址每个根级类名。
但你没有。
但最糟糕的是您根本不应该捕获 PDOException。就leave it alone and let it report to a site-wide report handler
关于php - PDO 捕获 PDOException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39826052/
我正在使用 symfony,当我在控制台中输入以下内容时: php app/console doctrine:schema:create 我有以下错误 [Doctrine\DBAL\Exception
我在 PHP 中收到以下错误: Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003]
这是我的代码: $db = new PDO('mysql:host=192.168.1.1;dbname=mydb'); 是否可以更改异常消息“无法连接到‘192.168.1.1’上的 MySQL 服
我在 PHP 中收到以下错误: Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003]
我安装了 Laravel 并从 git 服务器克隆了一个存储库以在临时服务器上使用。安装所有必需的工具后,我想迁移数据库。我现在得到的错误是: [2016-05-04 16:54:51] local.
如果我无法连接到数据库(例如 xamp 关闭或数据库连接关闭等),我会 try catch 错误。我尝试使用 PDO::errorCode() 但没有产生结果。 在我的php中,我有一个connect
当我运行以下代码时,出现此错误: Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: numb
我正在使用 Articles 类从我的数据库中提取关于 ..articles 的数据。我可以使用实例来插入数据、修改它,但我似乎无法从不同的页面集使用它。文件夹结构如下所示/cms/conf.php(
这个问题在这里已经有了答案: PHP Fatal error: Uncaught PDOException: could not find driver (4 个答案) PDOException “
这段代码工作正常,但我想处理 exception如果有任何问题,所以我故意在 query 中犯了一个语法错误但没有任何反应。下面是代码 try { $sql = "INSERT INTO jo
我不知道如何在下面的代码中捕获PDOException,请告诉我在下面的代码中哪里抛出异常? 我有(目录): - folder -1) b.php -2) c.php - au
我有一段简单的代码,在 PHP 中使用 PDO: $conn = new PDO('mysql:host=localhost;dbname=someDatabase', $username, $pas
我目前正在通过终端在 Laravel 中进行迁移,并且在尝试使用 php artisan migrate 时出现这两个错误;我将在下面打印错误: Exception trace: 1 PDOE
try { self::$dbinstance = new PDO( "mysql:host=$c[host];dbname=$c[dbname]", $c['user'],
我目前正在完善我的网站,一切正常但我一直收到错误。它不会破坏任何东西,但看起来很烦人。我一直在尝试很多东西,但我需要一些新的眼光来看待这个问题:/ 错误 PHP Fatal error: Cannot
获取POST传递过来的信息,将字符串中的所有空格去掉,然后启动一个新的pdo实例,连接mysql,将POST传递过来的信息插入到表中。 $title = trim($_POST["title"]);
我可以将迁移迁移到数据库,但是当我访问公用文件夹时,我收到一个 PDOException : SQLSTATE[28000] [1045] 用户“root”@“localhost”访问被拒绝(使用密码
我在 CentOS 7 上使用 PHP 5.6 运行 MariaDB。这是我的连接字符串: try { $connStr = 'mysql:host=server;dbname=mysql';
try { self::$dbinstance = new PDO( "mysql:host=$c[host];dbname=$c[dbname]", $c['user'],
所以我正在尝试为这样的 Laravel 应用程序编写单元测试: protected function setUp() { parent::setUp(); $this->disable
我是一名优秀的程序员,十分优秀!