是否可以设置默认的 PDO 获取模式?

Posted

技术标签:

【中文标题】是否可以设置默认的 PDO 获取模式?【英文标题】:Is is possible to set a default PDO fetch mode? 【发布时间】:2011-04-23 01:44:44 【问题描述】:

在我检索数据之前,我总是需要输入:

$STH->setFetchMode(PDO::FETCH_OBJ);

为了使我的代码更具可读性,如果我可以在某处设置默认模式,那就太好了......

谢谢!

编辑。我最初希望我可以将 PDO:FETCH_OBJ 添加到我在连接到数据库时运行的 setAttribute 代码中,但这似乎不起作用......

【问题讨论】:

【参考方案1】:
$connection = new PDO($connection_string);
$connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);

【讨论】:

【参考方案2】:
$dsn = 'mysql:host='.$db_server.';dbname='.$db_name.';port='.$db_port;
$driver_options = array(
   PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'",
   PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
   PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
);               
$dbh = new PDO( $dsn, $db_user, $db_pass, $driver_options );

【讨论】:

感谢您发布答案!虽然代码 sn-p 可以回答这个问题,但添加一些附加信息仍然很棒,比如解释等.. 当然可以!只需添加该 PDO 允许设置参数列表。因此,使用数组 $options 您可以轻松添加更多输入来自定义查询输出... 现在看起来很棒。它也适用于 PDO::FETCH_NAME 和 PDO::FETCH_ASSOC 等。

以上是关于是否可以设置默认的 PDO 获取模式?的主要内容,如果未能解决你的问题,请参考以下文章

使用默认模式-PDO::ERRMODE_SILENT

学习PDO中的错误与错误处理模式

PDO 中支持三种错误处理模式:

PDO异常处理

php PDO默认设置

PHP PDO 错误与错误处理