2017-07-28 70 views
0

我想使用內置的PDO類連接到mysql數據庫。
如果我理解正確,PDO方法默認不會引發異常。它是否正確?
所以我試圖改變錯誤模式:在名稱空間內調用PDO :: setAttribute

$pdo = new PDO($dsn, $user, $password); 

$ pdo->的setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION);

我的問題是,我用我的班命名空間,所以我必須寫:

$pdo = new \PDO($dsn, $user, $password); 

但我不知道如何設置錯誤模式在這方面。

+0

只需添加「使用PDO」在php文件的頂部。 secure.php.net/manual/en/language.namespaces.importing.php – DanielO

回答

2
$pdo = new \PDO($dsn, $user, $password); 
    $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); 

同樣的方式,你最初聲明它,我的朋友!

記住,PDO本身就是類,無論你是聲明一個新的實例(new PDO),或者如果你引用靜態常量(PDO::ATTR_ERRMODE)。由於您位於名稱空間內,因此您必須以\開頭。這適用於每次出現PDO,這是同一班。所以我們始終使用\PDO

這可能很難記住,你也可以把use \PDO;放在頂部,然後在整個過程中正常使用PDO。挑一個,並堅持到處。

+0

在屬性中使用反斜槓 – Yolo

+0

如果我嘗試在setAttribute中使用反斜槓,我得到一個致命錯誤:MyFile中找不到類'MyNamespace \ \ PDO' .PHP。 – altralaser

+0

有趣的是,我測試了一下自己,它工作。好奇!如果嘗試在頂部使用「使用PDO」的方法會發生什麼? – aaronofleonard

相關問題