sql >> データベース >  >> RDS >> Mysql

一般的なエラー:クラスコンストラクターを呼び出すことができませんでした'

    ドキュメントに記載されているように:

    public array PDOStatement::fetchAll ([ int $fetch_style [, mixed $fetch_argument [, array $ctor_args = array() ]]] )
    

    ctor_args

    Arguments of custom class constructor when the fetch_style parameter is PDO::FETCH_CLASS.
    

    setFetchModeにも同じ引数を使用できます

    public bool PDOStatement::setFetchMode ( int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
    

    それに応じてこれを実装します:

    まず、プロパティ $ ctorArgsを追加します \Core\Modelへ デフォルト値はnull 。続いて、現在の setFetchModeを置き換えます 呼び出し

    if (!is_array($this->ctorArgs)) throw new \Excpeption("\"ctorArgs\" must be of type array");
    $stm->setFetchMode(PDO::FETCH_CLASS, get_called_class(), $this->ctorArgs);
    

    最後に、プロパティ $ ctorArgsを追加します \App\Models\Admin\Photoへ デフォルト値はarray("picture")

    これにより、コンストラクターがパラメーター $ pictureを期待していることがコードに通知されます。 。

    プロパティの代わりに定数を使用することを考えますが、それはこれをどのように実装するかによって異なります。




    1. MySQLは、table1への挿入時にtable2に行を自動挿入します

    2. LinuxでMySQLまたはMariaDBのルートパスワードをリセットする方法

    3. postgresでの動的SQLクエリ

    4. オートコンプリートのためにMYSQLの会社名とPHPのあいまい一致を行うにはどうすればよいですか?