[英]PHP PDO fetching into objects
我試圖弄清楚如何從PDO獲取到我的自定義類,以及一般的PDO到對象API,並發現缺乏體面的文檔令人沮喪。 大多數選項僅作為選項記錄,而示例都使用提取到數組。
那么,有人可以解釋這些是如何使用的:
如果可能的話,我想要一般性解釋每個函數/常量如何用於獲取對象,或者差異是什么,以及如何獲取我的類的具體答案,例如:
class MyRow {
public $col1, $col2;
}
這是我設法弄清楚的:
PDO :: FETCH_OBJ
用於獲取未命名(“匿名”)對象的新實例
PDO :: FETCH_CLASS
用於獲取現有類的新實例(列名應與現有屬性匹配,或__set
應用於接受所有屬性)。 在設置屬性后將調用類的構造函數。
PDO :: FETCH_CLASSTYPE
與FETCH_CLASS
(按位OR)一起使用時,創建實例的類的名稱位於第一列,而不是提供給函數。
PDO :: FETCH_INTO
與FETCH_CLASS
使用相同類型的類(必須將所有列作為屬性名稱處理),但更新現有對象而不是創建新對象。
PDO :: FETCH_LAZY
我不知道這是做什么的。
PDOStatement對象::取
常規的get-a-row命令。 我不知道如何在FETCH_CLASS
或FETCH_INTO
使用它,因為沒有任何方法可以傳遞類名/實例。
PDOStatement對象:: fetchObject
一種做FETCH_CLASS
或FETCH_INTO
,包括傳遞構造函數args。 沒有args是FETCH_OBJ
的簡寫。
PDOStatement對象::調用setFetchMode
一種設置默認提取模式的方法,這樣可以在沒有args的情況下調用PDOStatment::fetch
。
這是我設法弄清楚的最好的。 我希望它可以幫助別人(我需要fetchObject
方法)
准備好語句后,將PDOStatement :: setFetchMode與PDO :: FETCH_CLASS一起使用:
$stmt = $pdo->query('SELECT col1, col2 FROM table');
$stmt->setFetchMode(\PDO::FETCH_CLASS, 'MyRow');
$obj = $stmt->fetch();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.