在我的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();
}
}
它引发了“无法找到驱动程序”的异常。什么是驱动程序以及如何使用它?
答案 0 :(得分: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环境中,用.so替换.dll。 取消注释只需要的适配器(在上例中:MySQL)。
答案 1 :(得分:1)
PDO::getAvailableDrivers()
使用此功能,您可以在服务器中找到可用的驱动程序。
答案 2 :(得分: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