2

私は PDO をいじって、結果のデフォルトの戻りクラスを作成しようと試み、またこれを一般的なデフォルトの動作にしました。

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)

これは最良のエラー メッセージではなく、エラーが発生している内容や場所に関する情報を実際に提供するものではありませんが、これは上記のセグメントによるものだと思います。そのセクションを削除すると、問題は発生しませんもうエラー。

うまくいけば、誰かが私に向かう方向を教えてくれることを願っています.

事前に感謝します。私が提供した情報が十分でない場合は、お気軽にお問い合わせください:]

4

1 に答える 1