我刚在Windows 10 {X}上的XAMPP上将PHP5.6升级到PHP7 following this guide。除PDO外,它的工作正常。
在我的phpinfo()中,我得到PDO support enabled, PDO drivers no value
。
我复制了php.ini-development并将其重命名为php.ini,并且我已经取消注释扩展文件夹声明和扩展驱动程序php_pdo_mysql.dll。
extension_dir = "ext"
...
extension=php_pdo_mysql.dll
我已经验证php_pdo_mysql.dll位于C:\ xampp \ php \ ext中,当我在控制台中运行php -m
时,PDO和pdo_mysql都被列为活动模块。
C:\xampp\php>php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
exif
filter
gd
gettext
hash
iconv
json
libxml
mbstring
mcrypt
mysqlnd
openssl
pcre
PDO
pdo_mysql
Phar
Reflection
session
SimpleXML
SPL
standard
tokenizer
wddx
xml
xmlreader
xmlwriter
zip
zlib
[Zend Modules]
当我运行一个使用PDO的脚本时,我会被抛出
Fatal error: Uncaught PDOException: could not find driver in (path to script)
我正在运行的脚本完全有效并且在升级之前工作正常(基本上只是一个new PDO(params)
)。
我错过了什么?
答案 0 :(得分:1)
由于某种原因,不确定为什么,Windows需要一个绝对路径到扩展目录。而不是
extension_dir = "ext"
在php.ini中,我把
extension_dir = "C:/xampp/php/ext"
然后重新启动apache。一切都有效。
也许有人可以详细说明这个问题?