У меня установлен PHP 5.6 на Windows 7, и я использовал встроенный сервер для локального запуска сайтов для тестирования. Я хочу подключиться к файлу Sqlite3, и я раскомментировал соответствующие строки в файле php.ini в моей папке C: \ Program Files \ php. Я все еще получаю эту ошибку при попытке просмотреть страницу на моем локальном сервере:
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\Users\USERX\Documents\pageloadbasic.php:13 Stack trace: #0
C:\Users\USERX\Documents\pageloadbasic.php(13): PDO->__construct('sqlite:db/lhblo...') #1 {main} thrown in C:\Users\USERX\Documents\pageloadbasic.php on line 13
Почему я получаю эту ошибку?
Пара замечаний: мой файл phpinfo показывает:
Configuration File (php.ini) Path C:\Windows
(по какой-то причине это всегда по умолчанию C: \ Windows, даже если там нет файла php.ini)
Loaded Configuration File C:\Program Files\php\php.ini
Но в C: \ Windows нет файла php.ini. Кроме того, моя папка php не содержит php_pdo.dll в папке ext, но я добавил папку, извлеченную из архива pecl-5.0.5-Win32, как указано на некоторых других сайтах.
я добавил extension=php_pdo.dll
в моем файле php.ini.
Я не комментировал extension=php_pdo_sqlite.dll
,
Я не комментировал extension=php_sqlite3.dll
,
У меня есть две строки в моем php.ini, которые связаны с sqlite:
[sqlite]
; http://php.net/sqlite.assoc-case
(Я ничего не изменил в этих двух строках, потому что я не уверен, для чего это …)
;sqlite.assoc_case = 0
[sqlite3]
sqlite3.extension_dir = "ext"
(в этой строке я добавил каталог «ext», как предложено в другом посте)
У меня есть это в моем PHP-код для подключения к моему файлу БД с помощью pdo:
$db = new PDO('sqlite:db/xxxxx.db');
Что мне не хватает? Что мне нужно сделать, чтобы заставить PDO работать с Sqlite3?
Задача решена. Несмотря на то, что я должным образом раскомментировал все мои dll и раскомментировал sqlite3.extension_dir = "ext"
, вам нужно специально раскомментировать расположение windows ext на следующей строке ; On windows:'
extension_dir = «ext» `
А затем перезапустите свой сервер.
Других решений пока нет …