在命名空间内调用PDO :: setAttribute

时间:2017-07-28 22:26:32

标签: php pdo

我想使用内置的PDO类连接到mysql数据库 如果我理解正确,默认情况下PDO方法不会抛出异常。这是对的吗? 所以我尝试更改错误模式:

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

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

我的问题是我在我的课程中使用名称空间所以我必须写:

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

但我不知道如何在此上下文中设置错误模式。

1 个答案:

答案 0 :(得分: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。选择一个,并随处坚持。