我檢索數據之前,我總是要輸入:是否可以設置默認的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