1

私のPHPコードでは、次のコードを実行します:

private function dbConnection() {
        if (!is_resource($this->connessione))
            try {
                    $this->connessione = new PDO($this->db_type.":dbname=".$this->db_name.";host=".$this->db_server, $this->db_username, $this->db_pass );
                    //echo "PDO connection object created";
                    $this->setupSQLStatement();
                }
            catch(PDOException $e)
                {
                    echo $e->getMessage();
                    die();
                }
    }

「ドライバーが見つかりませんでした」という例外が発生しました。ドライバーとは何ですか?

4

3 に答える 3

4

PDO にはコア拡張機能と、一部の DBMS (MySQL、PostgreSQL、Oracle、SQLite...) 用の多くの「アダプター」が付属しています。

php.iniこれらのアダプタは、次のように で有効にする必要がある追加の拡張機能です。

extension=php_pdo.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_ibm.dll
;extension=php_pdo_informix.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_oci8.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
;extension=php_pdo_sqlite.dll
;extension=php_pdo_sqlite_external.dll
;extension=php_pdo_user.dll

UNIX 環境では、.dll を .so に置き換えます。必要なアダプターのみをコメント解除します (上記の例では: MySQL)。

于 2012-11-26T09:24:57.507 に答える
1

以下を追加して、「mysql」行が出力されることを確認します。

foreach(PDO::getAvailableDrivers() as $driver)
    echo $driver, '<br>';

表示されない場合は、php.ini を開き、以下を見つけます。

;extension=php_pdo_mysql.dll

を削除して;、次のようにしてから再試行します。

extension=php_pdo_mysql.dll

また、上記と同じことを次のように行います。

;extension=php_pdo.dll
于 2012-11-26T09:27:18.057 に答える
1
PDO::getAvailableDrivers()

これを使用すると、サーバーで利用可能なドライバーを見つけることができます。

于 2012-11-26T09:24:30.033 に答える