Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用PDO引发异常“找不到驱动程序”_Php_Mysql - Fatal编程技术网

Php 使用PDO引发异常“找不到驱动程序”

Php 使用PDO引发异常“找不到驱动程序”,php,mysql,Php,Mysql,在我的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, $

在我的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();
                }
    }
它引发了找不到驱动程序的异常。什么是驱动程序以及如何使用它

PDO::getAvailableDrivers()
使用此选项,您可以在服务器中找到可用的驱动程序


使用它,您可以在您的服务器中找到可用的驱动程序。

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。

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。

添加以下内容并检查它是否输出“MySQL”行

foreach(PDO::getAvailableDrivers() as $driver)
    echo $driver, '<br>';
移开;,看起来是这样的,然后重试:

extension=php_pdo_mysql.dll
对以下各项执行与上述相同的操作:

;extension=php_pdo.dll

添加以下内容并检查它是否输出“mysql”行

foreach(PDO::getAvailableDrivers() as $driver)
    echo $driver, '<br>';
移开;,看起来是这样的,然后重试:

extension=php_pdo_mysql.dll
对以下各项执行与上述相同的操作:

;extension=php_pdo.dll

你的PHP版本是什么?你应该至少有PHP5.1。我使用w.a.m.p.5->wamp5信息文件显示:PHP5.2.1版;扩展费用:…,PDO。$this->db\u type的值是多少?死后我得到了$this->db\u type=mysqlphp版本是什么?你应该至少有PHP5.1。我使用w.a.m.p.5->wamp5信息文件显示:PHP5.2.1版;扩展费用:…,PDO。$this->db\u type的值是多少?死后我得到了$this->db\u type=mysqlprint\r,它显示:Array[0]=>sqlite[1]=>sqlite2。那么如何建立连接呢?$pdo=newpdo'sqlite:/path/to/db/xyz.db';打印后显示:数组[0]=>sqlite[1]=>sqlite2。那么如何建立连接呢?$pdo=newpdo'sqlite:/path/to/db/xyz.db';我没有注释这些行,但我总是找不到驱动程序!apache\bin folderI中的php.ini文件取消了这些行的注释,但我始终无法找到驱动程序!apache\bin文件夹中的php.ini文件