Подтвердить что ты не робот

Драйверы PDO не имеют значения в Windows

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

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

Что не так?

4b9b3361

Ответ 1

У меня была такая же проблема, когда я обновился до 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"

Ответ 2

попробуйте следующее: найдите это в своем 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"

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

PHPIniDir "C:\php\"

к

PHPIniDir "C:/php/"

... гухи.

Ответ 6

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

Ответ 7

У меня была эта проблема в 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]. Я думаю, порядок объявления важен!

Ответ 8

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

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

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

Ответ 9

Я получил подсказки здесь:

http://wiki.cementhorizon.com/display/CH/Solution+-+Unable+to+load+dynamic+library+C+php+ext+php_mysql.dll+-+the+specified+module+could+not+be+found

Я убедился, что я установил c:/php в качестве переменной PATH, а затем переместил соответствующие DLL в каталог c:/php (из каталога c:/php/ext).

Все работает для меня сейчас, хотя мне не совсем удобно перемещать вещи вокруг каталога php.

Ответ 10

У меня была такая же проблема, и я был в тупике, пока не прочитал следующее:

http://www.artfulsoftware.com/php_mysql_win.html

Я запускаю PHP 5.2 с Apache 2.2. Исправить для меня было скопировать файл libmysql.dll в мой каталог bin Apache.

Я бы рекомендовал следующий курс действий всем, кто имеет эту проблему: 1) убедитесь, что загруженный файл конфигурации находится там, где вы думаете (например, что Apache не использует какой-либо по умолчанию php.ini). Phpinfo() предоставит ответ на этот 2) убедитесь, что все нужные расширения находятся в папке php\ext и включены в файл php.ini(большинство популярных расширений просто нужно расколоть) 3) Попробуйте загрузить pdo_sqllite. Если это произошло в phpinfo() после перезапуска Apache, вы сузили проблему неспособности Apache загрузить необходимые расширения mysql. 4) Следуйте инструкциям в ссылке выше.

Ответ 11

У меня тоже была эта проблема. У меня есть Apache/2.2.22 (Win32) PHP/5.3.23 на машине Windows 7. Мое решение меняло расширение extension_dir = C:\Program Files (x86)\PHP\ext в файле php.ini на extension_dir = "C:\Program Files (x86)\PHP\ext". Просто нужно было добавить кавычки.

Я также добавил каталог php в CLASSPATH.

Ответ 12

проверьте, что файлы pdo *.dll находятся в соответствующих местах в каталоге ОС, проверьте, что ссылки на эти файлы включены в php.ini, проверьте правильность вашей строки dbconnection, перезапустите apache

Ответ 13

Ошибка PHP PDO не существует на 5.4

Неустранимая ошибка: Class 'DigitalToolBox\PDO' не найден в C:\SERVER\www\MyAPP\DigitalToolBox\MysqlConnectionTool.php в строке 19

вы можете увидеть, что pdo загружен, потому что он находится в списке с помощью этой команды:

print_r(get_loaded_extensions()); 

эта ошибка возникает при использовании пространств имен, нам нужно добавить в начале нашего кода инструкцию:

use PDO;

IF ($ this- > работает)  $ VoteForThis ++;

Ответ 14

Если вы используете PHP Manager с помощью IIS, выполните следующие действия:

  • Откройте IIS (обычно я открываю его, вводя IIS в начале); Start IIS

  • Дважды щелкните "Менеджер PHP"; Click PHP Manager

  • Нажмите "Включить или отключить расширение"; Enable/Disable extension

  • Прокрутите вниз, чтобы найти нужный вам драйвер (в моем случае php_pdo_mysqll.dll) и нажмите "включить"; Scroll to driver & enable

  • После этого водитель должен появиться и работать. Enabled driver

  • Готово! Надеюсь, это помогло кому-то, потому что другие ответы не помогли мне.

Ответ 15

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

extension=php_pdo_mysql.dll

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

extension=php_mysql.dll

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

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

Ответ 16

В PHP 7.1 x64 для windows с apache 2.4 x64:

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

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