我刚刚在 Windows 10 上的 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)
)。
我错过了什么?
最佳答案
由于某种原因(不确定为什么),Windows 需要扩展目录的绝对路径。所以而不是
extension_dir = "ext"
在 php.ini 中,我放入了
extension_dir = "C:/xampp/php/ext"
然后重新启动apache。一切又恢复正常了。
也许有人可以详细说明这个问题?
关于mysql - PHP7 和 pdo_mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41160146/