1

エラー:

致命的なエラー: Swiftlet\App::autoload(): 必要な 'Swiftlet/Models/mysqli.php' (include_path='.:/usr/local/lib/php-5.3.13/lib/php') を / で開けませんでしたhermes/waloraweb009/b1166/htdocs/jim/ss test/Swiftlet/App.php 行 223

私はMVCが初めてで、Swiftletを試しています。MYSQL データベース モデルをセットアップしようとしています。

エラーを次のように特定しました。

class Database extends \Swiftlet\Model {
    public $mysqli;

    public function __construct(App $app) {
        $this->mysqli = new mysqli($this->app->getConfig('dbHost'),
                                   $this->app->getConfig('dbUser'),
                                   $this->app->getConfig('dbPassword'),
                                   $this->app->getConfig('dbName'));
    }
}

しかし、理由はわかりません。ロードしようとするのはなぜmysqliですか?

4

1 に答える 1

1

問題は、\Swiftlet名前空間にいる可能性が高いことです。この名前空間内から mysqli (グローバル名前空間内のアイテム) をインスタンス化しようとすると、その名前空間内のクラスを通常自動ロードするように見える場所を自動ロードしようとします。クラスが存在しないため、オートロード エラーが発生します。

mysqli のインスタンス化を次のように変更してみてください。

$this->mysqli = new \mysqli($this->app->getConfig('dbHost'), $this->app->getConfig('dbUser'), $this->app->getConfig('dbPassword'), $this->app->getConfig('dbName'));

グローバル名前空間で mysql クラスを参照することで、myslqiプレフィックスが付けられることに注意してください。\

于 2012-08-29T21:10:52.923 に答える