2013-03-27 3 views
1

Загружен и установлен PostgreSQL 9.2.3, который поставляется с Stackbuilder.PDO Exception «Не удалось найти драйвер» (pgsql)

Я использовал PostgreSQL Stackbuilder для установки Apache (2.2.22) & PHP (5.4.5).

Теперь я пытаюсь подключиться к базе данных с PDO, но я получаю ошибку driver not found.

Я не прокомментировал extension=php_pgsql.dll & extension=php_pdo_pgsql.dll в моем файле php.ini.

Мой phpinfo(); функция показывает, что они включены. enter image description here

Главное, что я заметил, что в моем PHP \ каталога нет внов \ каталога с этими файлами. Я предположил бы, что эти файлы были бы автоматически установлены в подкаталог php \.

Где можно хранить эти расширения; мне нужно указать абсолютный путь для php, чтобы найти их?

ОБНОВЛЕНИЕ: Итак, я вошел в php.ini и включил ошибки запуска. Когда я запускаю командную строку php.exe, я получаю ошибки, заявляя, что php_pgsql.dll & php_pdo_pgsql.dll не может быть найден.

enter image description here Похоже, что они пытаются ссылаться на них на диск D: которого у меня нет. Я установил все в один каталог на диске E :. Я не могу найти расширения в любом месте (и не может php).

+0

Как выглядит ваша строка подключения? – dlp

+0

Я определил константы в файле конфигурации. Если я возвращаю его обратно, это выглядит так: «pgsql: host = localhost; port = 5432; user = postgres; password = postgres; dbname = Test» ' – Roy

+0

Это выглядит как путь от сервера сборки, а не тот, который 'когда-либо устанавливаться в вашей локальной системе. Weird. Где 'php_pdo_pgsql.dll' в вашей системе? Это или папка, указанная в «php.ini» в любом месте? или на 'PATH'? –

ответ

6

В WAMP (Windows) ...

копия C:\wamp\bin\php\php5.x.xx\libpq.dll

паста в C:\Windows\System32\

+4

Пожалуйста, добавьте некоторое объяснение. –

1

на WAMP, есть 2 php.ini файлы, вы должны проверить, если расширение Postgresql является на обоих! Расширение линии

extension=php_pdo_pgsql.dll 

Так проверить

C:\wamp\bin\apache\apache2.4.9\bin\php.ini 

Также проверьте на

C:\wamp\apache\apache2.4.9\bin\php.ini 

После добавления выносной линии, перезапустить Apache, и он будет работать.