我一直在嘗試使用PDO嘗試爲結果創建默認返回類,並使其成爲默認行爲。擴展PDOStatement以使用默認的FETCH_CLASS。期望班級名稱爲字符串
這使我發現我需要擴展PDOStatement
,以便它在實例化時設置我的默認類。
代碼中沒有明顯的錯誤。
當我在DB包裝器中創建PDO實例時,我將DB句柄設置爲使用我的擴展語句類並通過類名稱作爲結果類的參數。我通常會使用stdClass,但是我做了一個簡單的類,擴展了ArrayObject
。
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_CLASS);
$pdo->setAttribute(
PDO::ATTR_STATEMENT_CLASS,
array(
'DatabaseStatement',
array('DatabaseRow')
)
);
這一切看起來似乎不錯,但我得到以下錯誤:
SQLSTATE[HY000]: General error: Invalid class name (should be a string)
這是不是最好的錯誤消息,並沒有真正提供任何信息,以什麼或發生錯誤的地方,但我相信這是由於上面的段,因爲一旦我刪除該部分,它不會再發出該錯誤。
希望有人能給我一個方向,因爲我一直在Google/SO-ing一段時間,但唉,無濟於事。
謝謝你在前進,隨時索要詳細信息,如果我所提供的是不夠的:]