我检索数据之前,我总是要输入:是否可以设置默认的PDO获取模式?
$STH->setFetchMode(PDO::FETCH_OBJ);
在做我的代码更易读的利益,这将是巨大的,如果我能的地方设置一个默认的模式....
谢谢!
编辑。我本来希望我能PDO补充:FETCH_OBJ到setAttribute代码,我当我连接到数据库上运行,但似乎并没有工作......
我检索数据之前,我总是要输入:是否可以设置默认的PDO获取模式?
$STH->setFetchMode(PDO::FETCH_OBJ);
在做我的代码更易读的利益,这将是巨大的,如果我能的地方设置一个默认的模式....
谢谢!
编辑。我本来希望我能PDO补充:FETCH_OBJ到setAttribute代码,我当我连接到数据库上运行,但似乎并没有工作......
$connection = new PDO($connection_string);
$connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
$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);
有许多方式你可以做到这一点,但我做它,因为我想成为它。对于MySQL
,端口为3306
,位于PDO中。我做了一个字符串名称$dsn
。现在我打电话给新的PDO $db = new PDO(...)
。
您需要使用
PDO::FETCH_OBJ
当你初始化数据库 连接,你可以做的各种方式,但我做到了内嵌数组作为new PDO
的 第四参数。
$dsn = 'mysql:dbname=test;host=localhost;port=3306';
$username = 'root';
$password = '';
$db = new PDO($dsn, $username, $password, array (
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ
));
想知道为什么会有人想要upvote过时的答案,而现有答案是完全相同的。逆转。 – 2016-06-09 06:13:31
它可能是我做一点不同,并添加一些说明,其实我从这个问题得到的答案,看到答案不是任何描述,所以我添加另一个答案,我开始学习今天的PDO。 – 2016-06-09 06:16:49
出于某种原因,你在你的回答中描述了一个DSN,但不是关于实际问题的一个词。 – 2016-06-09 06:43:21
感谢您发表的回答!虽然代码片段可以回答这个问题,但添加一些附加信息仍然很棒,比如解释等。 – j0k 2013-01-10 09:11:24
当然可以! 只需添加PDO允许设置参数列表。因此,使用数组$ options,您可以轻松地添加更多输入来自定义您的查询输出... – 2013-01-10 09:44:45