4

重複の可能性:
Windowsプラットフォーム上のmysql_connect(localhost / 127.0.0.1)

開発マシンでApacheとPHPのバージョンを更新したところ、PDOが完全に機能しなくなりました。

これは非常に単純なPDOクラスです。

class PDO_DBH {
    public static function openSesame() {
        echo '<p>start openSesame: </p>'.microtime(true);
        $db_username = 'root';
        $db_password = 'pass';
        try {
            $dbh = new PDO('mysql:host=localhost;dbname=DB_NAME', $db_username, $db_password);
            $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
            echo '<p>end successful openSesame: </p>'.microtime(true);
            return $dbh;
        } catch (PDOException $e) {
            echo '<p>end failed openSesame: </p>'.microtime(true);
            return 'PDO database access error!';
        }
    }
}

アップグレードする前、および現在他の開発マシンでは、通常のページは1秒で読み込まれます。最大で2つです。

さて、の驚異を介してmicrotime(true)、私は各接続の開始に約1秒かかるのを見ています。

通常のページでは、新しいページが作成され$dbh、その後$dbh = null;、さまざまなオブジェクトやメソッドが必要なデータを取得するときに20回作成されます。これは、他のマシンや私のウェブホストでは問題になりませんでした。

ここでどこが間違っているのですか?

4

1 に答える 1

4

これは単なる推測でしたが、Windows マシンでは127.0.0.1代わりに に変更するとlocalhostうまくいきます。

于 2012-10-30T06:03:08.000 に答える