我正在類構造函數內創建新的PDO連接,然後僅在該類中使用它。如果發生一些錯誤,我會得到致命錯誤,而不是PDOException
。在其他範圍內使用PDOException可能嗎?
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not fou.....
我的代碼是:
class Helper
{
private $_db;
function __construct($config = FALSE)
{
$this->_db = new PDO($config['database']['dsn'], $config['database']['username'], $config['database']['password'], $config['database']['options']);
$this->_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
}
$config = array(
'database' => array(
'dsn' => 'mysql:host='.$dbhost.';dbname='.$dbname,
'username' => $dblogin,
'password' => $dbpass,
'options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
)
)
);
try {
$helper = new Helper($config);
} catch (PDOException $error) {
die('Database Error: ' . $error->getMessage());
}
那麼,這可能嗎?
它應該是可能的。 PDO正在利用該功能(其中包括)來推廣自己。 – 11684
@ 11684但正如我所說 - 我只得到致命錯誤 – Kin
也許它與你自己並沒有調用'__construct()'方法有關。如果將代碼從構造函數移動到實例方法(例如'foo'),然後在try-block中執行此操作,會發生什麼情況:'$ helper = new Helper(); $ helper-> FOO($配置)'。 – 11684