php PDO无法正常工作 - “找不到驱动程序”异常

时间:2014-01-01 21:19:03

标签: php apache postgresql pdo

我正在使用Windows Server 2012,Apache 2.2.22和PHP 5.3.13。还有postgreSQL 9.1和postGIS 2.0

PHP安装正常。我成功地从Apache更改了Apache的Document Root。现在DocumentRoot设置为"D:/sites"

在安装PHP期间,我选择为postgreSQL安装PDO。

我检查了php.ini,并且没有注释掉行extension=php_pdo_pgsql.dll

在我的网站中,我有map.php,其中包含header.php。 Header.php包含connection.php。

connection.php包含连接数据库的代码。

<?php

error_reporting(E_ALL);
header('Content-Type: text/html; charset=UTF8');

try {  
$dbh = new PDO("pgsql:host=localhost;port=5432;dbname=cmapdbs;user=yyy;password=yyy");
$dbh->exec("SET NAMES UTF8");
$dbh->query('SET NAMES UTF8');
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
$dbh->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

   }  
catch(PDOException $e){  
echo"PROBLEM";
echo "  ---  ";

    echo $e->getMessage();

echo "  ---  ";

echo $e;
    } 

pg_query('SET NAMES UTF8');

?>

我无法连接到数据库。我得到的错误是

Warning: Cannot modify header information - headers already sent by (output started at D:\sites\mysite\header.php:84) in D:\sites\mysite\connection.php on line 4
PROBLEM --- could not find driver --- exception 'PDOException' with message 'could not find driver' in D:\sites\mysite\connection.php:7 Stack trace: #0 D:\sites\mysite\connection.php(7): PDO->__construct('pgsql:host=loca...') #1 D:\sites\mysite\map.php(5): include_once('D:\sites\mysite...') #2 {main}
Fatal error: Call to undefined function pg_query() in D:\sites\mysite\connection.php on line 26

请原谅我的无知,我不知道如何解决它。我认为在安装过程中选择PDO并检查ini会起到作用

提前致谢

PS:在info.php中,在PDO部分中没有启用任何内容。

0 个答案:

没有答案