0

Windows XP の Apache 2.2 で PHP 5.4.5 を実行しています。2回:-)両方のマシンが同じようにセットアップされていると思いますが、一方のマシンは正常に動作し、もう一方のマシンはエラーを生成します。(どちらも開発マシンです。1 つは開発用で、もう 1 つは隔離されたテスターです)

拡張機能 php_pdo.dll、php_pdo_sqlite.dll、および php_sqlite.dll をすべて有効にしました (ただし、php_pdo_sqlite.dll のみが ext ディレクトリにあり、pdo_sqlite.dll は実際には php_sqlite3.dll と呼ばれていますが、それはすべてあるべき状態です。)

それが役立つ場合、これは構築時に失敗します。私は独自のクラスで PDO をラップしています。問題のあるコードは次のようになります。

クラス

ADO extends PDO {

    function __construct ($cnString = 'sqlite:..') {
        parent::__construct ($cnString);
        $this->setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
...

しかし、それでは何が起こっているのか説明できません。なぜなら、私が言ったように、これはプレイ マシン上で問題なく動作するからです。

私はただ盲目になり、明らかなものを見ることができないと思います:-) 何かアイデアはありますか?

前もって感謝します。

4

2 に答える 2

4

それを見つけた!私は正しかった-それは明白で、私は盲目になっていた:-)

Apacheのhttpd.confで、#BEGIN PHP INSTALLEREDITS...とマークされたセクションでPHPIniDirがコメント化されていました。理由はわかりません、私とは何の関係もありません。気の利いたインストールだったに違いありません。しかし、私はそれを非難しました、そしてすべては今あるべきであるようになっています。

PHPがiniファイルがないと文句を言わなかったのはなぜだろうか?(エラーログには何もありませんでした)。将来的に注目すべきものだと思います。

主要な質問をありがとう:-)

于 2012-08-19T12:17:44.023 に答える
0

新しい PHP バージョンに切り替えた後、同じエラー メッセージが表示されました。解決策は簡単でしたが、ここに投稿すると、Google を通じてここにたどり着いた人を助けることができるかもしれません...

php.ini ファイルの pdo_mysql / pdo_mysqlite 拡張子をエスケープ解除する必要がありました (mysql と myslq lite バージョンのどちらを使用しているかによって異なります)。

;extension=php_pdo_mysql.dll
;extension=php_pdo_sqlite.dll
于 2013-09-25T13:07:15.047 に答える