我在windows 7上安装了PHP 5.6,我使用内置服务器在本地运行网站进行测试。我想连接到一个Sqlite3文件,我已经取消了在php.ini文件在我的C:Program Filesphp文件夹中的适当行注释。当我试图在本地服务器上查看页面时,我仍然得到这个错误:
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:UsersUSERXDocumentspageloadbasic.php:13 Stack trace: #0
C:UsersUSERXDocumentspageloadbasic.php(13): PDO->__construct('sqlite:db/lhblo...') #1 {main} thrown in C:UsersUSERXDocumentspageloadbasic.php on line 13
为什么我得到这个错误?
我的phpinfo文件显示: Configuration File (php.ini) Path C:Windows
(由于某些原因,它总是默认为C:Windows,即使那里没有php.ini文件)
Loaded Configuration File C:Program Filesphpphp.ini
但是在C:Windows中没有php.ini文件。另外,我的php文件夹没有在ext文件夹中包含php_pdo.dll,但我添加了一个,我从pecl-5.0.5-Win32存档中提取了一个,按照其他一些站点的指示。
我在php.ini文件中添加了extension=php_pdo.dll
.
I uncomment extension=php_pdo_sqlite.dll
.
I uncomment 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"
的注释,您也需要特别取消; On windows:'
extension_dir = "ext" '后面的windows ext位置的注释。然后重新启动服务器。