Драйверы PDO не имеют значения в Windows - PullRequest
29 голосов
/ 17 августа 2011

php_pdo_mysql.dll не может быть включен в машине. Я установил extension=php_pdo.dll и extension=php_pdo_mysql.dll в php.ini, но когда я проверял phpinfo(), элемент Драйверы PDO равен без значения .

а также я не могу найти информацию о MySQL в phpinfo (), но я установил extension=php_mysql.dll включенным.

Что не так?

Ответы [ 16 ]

61 голосов
/ 09 февраля 2013

У меня была такая же проблема при обновлении до PHP 5.4.У меня было

extension_dir = "ext"

в php.ini и php -m запускался нормально и сообщал, что он загрузил pdo_mysql, но когда я запускал phpinfo.php через apache, драйвер отсутствовал.

Я исправил это, изменив extension_dir на абсолютный путь .Я предполагаю, что он запутался при работе через Apache и сделал это относительно чего-то другого.

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "D:/php-5.4.11-Win32-VC9-x86/ext"
9 голосов
/ 17 декабря 2012

попробуйте следующее: найдите это в своем php.ini и раскомментируйте extension_dir = "ext"

; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
 extension_dir = "ext"
7 голосов
/ 01 октября 2012

Попробуйте php -m в консоли, он покажет ошибки запуска PHP.

6 голосов
/ 23 июля 2014

В Windows Server 2012, Apache 2.4, установка php 5.4, после того, как все остальное изменилось, это сработало ...

PHPIniDir "C:\php\"

на

PHPIniDir "C:/php/"

... гм.

4 голосов
/ 17 августа 2011

Проверьте с помощью phpinfo (), чтобы убедиться, что путь к php.ini совпадает с заданным. На компьютерах с Windows несколько экземпляров php.ini обычно создаются и вызывают путаницу.

Кроме того, вызов php из командной строки выдаст вам сообщение об ошибке с более подробной информацией о том, почему он может не загружаться. Возможно, расширение, которое вы пытаетесь включить, несовместимо с вашей установкой PHP. то есть это не потокобезопасная dll с двоичным потокобезопасным бинарным файлом или существует несоответствие компилятора где-то, где использовались оба vc9 и vc6.

3 голосов
/ 26 февраля 2017

В PHP 7.1 x64 для Windows с Apache 2.4 x64:

extension_dir = "ext" не работает для меня,

абсолютный путь: extension_dir = "C: \ DEV \ PHP71 \ ext \" работал хорошо

2 голосов
/ 20 марта 2015

Комментарий Михая в 2012 году гласит: «Попробуйте php -m в консоли, он покажет ошибки запуска PHP». Это предложение оказалось наиболее полезным. Если в файле php.ini есть какие-либо ошибки, диспетчер PHP для Windows (IIS 8) не совсем ясно, что не так с php.ini.

Перейдите в командную строку и введите php -m в командной строке. Всплывающее сообщение (оповещение) сообщит вам о любых ошибках и даст номера строк для этих проблем. В большинстве случаев моей единственной проблемой было то, что я раскомментировал (удалил точку с запятой) в нескольких строках php.ini, где мне НЕ следовало этого делать.

Еще один полезный совет для меня заключался в том, чтобы указать полный путь к папке расширений (см. Комментарий Джереми Прина выше), которая помогла с появлением сообщений «отсутствующие dll» в окнах предупреждений.

2 голосов
/ 05 сентября 2013

У меня была эта проблема на Windows с использованием IIS.Мой php.ini содержал следующие разделы:

[PHP_PDO_MYSQL]
extension=php_pdo_mysql.dll
[PHP_PDO]
extension=php_pdo.dll

Я просто взял разделы [PHP_PDO_MYSQL] и [PHP_PDO] и поменялся местами, так что [PHP_PDO] был первым.Я думаю, что порядок декларации важен!

2 голосов
/ 03 апреля 2013

После изменения конфигурации php.ini необходимо перезапустить сервер Appche в службе Windows. Затем модуль расширения будет загружен. используйте следующий код для проверки: <?php print_r(get_loaded_extensions());?>

1 голос
/ 31 августа 2016

Драйверы PDO не имеют значения - ваши dll-записи не могут быть упорядочены в файле php.ini.Проверьте список записей расширения DLL.

extension=php_pdo_mysql.dll

записи должны быть помещены рядом со всеми записями pdo.То же самое, что и

extension=php_mysql.dll

записи должны быть помещены рядом со всеми без записей pdo.

Хмель, это помогает ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...