无法在计算机中启用php_pdo_mysql.dll
。我在php.ini中设置了extension=php_pdo.dll
和extension=php_pdo_mysql.dll
,但是当我选中phpinfo()
时,项 PDO驱动程序 没有值
而且我在phpinfo()中找不到mysql信息,但我已设置extension=php_mysql.dll
。
怎么了?
答案 0 :(得分:60)
当我升级到PHP 5.4时,我遇到了同样的问题。我有
extension_dir = "ext"
php.ini中的和php -m
开始正常并报告它加载了pdo_mysql,但是当我通过apache运行phpinfo.php时,驱动程序丢失了。
我通过将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"
答案 1 :(得分:9)
尝试以下操作:在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"
答案 2 :(得分:7)
在控制台中尝试php -m
,它将显示PHP的启动错误。
答案 3 :(得分:6)
在Windows Server 2012上,Apache 2.4,php 5.4安装,在尝试了其他所有改变后工作...
PHPIniDir "C:\php\"
到
PHPIniDir "C:/php/"
... GUH。
答案 4 :(得分:4)
使用phpinfo()检查以确保php.ini的路径与设置的路径相同。在Windows机器上,通常会创建多个php.ini实例并导致混淆。
此外,从命令行调用php将为您提供一条错误消息,其中包含有关可能无法加载的详细信息。可能是您尝试包含的扩展名与PHP安装不兼容。即,它是一个非线程安全的dll,带有线程安全二进制文件,或者在使用vc9和vc6的地方存在编译器不匹配。
答案 5 :(得分:2)
更改php.ini配置后,需要在windows服务中重启Apache服务器。然后将加载扩展模块。使用以下代码进行测试:<?php print_r(get_loaded_extensions());?>
答案 6 :(得分:2)
我在使用IIS的Windows上遇到此问题。我的php.ini包含以下部分:
[PHP_PDO_MYSQL]
extension=php_pdo_mysql.dll
[PHP_PDO]
extension=php_pdo.dll
我只是采用了[PHP_PDO_MYSQL]
和[PHP_PDO]
部分,并交换了他们的位置,以便[PHP_PDO]
排在第一位。我猜申报单很重要!
答案 7 :(得分:2)
Mihai在2012年的评论中说:“在控制台中尝试使用php -m,它会显示PHP的启动错误。”这个建议被证明是最有帮助的。如果php.ini文件中有任何错误,Windows PHP管理器(IIS 8)不清楚php.ini有什么问题。
转到命令提示符并在提示符下键入php -m
。弹出消息(警报)将让您知道任何错误,并为这些问题提供行号。在大多数情况下,我唯一的问题是我在一些php.ini行上没有注释(删除了分号),我不应该这样做。
对我来说另一个有用的提示是放入扩展文件夹的完整路径(请参阅Jeremy Prine上面的评论),这有助于在警报框中弹出“丢失的dll”消息。
答案 8 :(得分:2)
在带有apache 2.4 x64的Windows上的PHP 7.1 x64中:
extension_dir =&#34;分机&#34; 不适合我,
绝对路径: extension_dir =&#34; C:\ DEV \ PHP71 \ ext \&#34; 运作良好
答案 9 :(得分:1)
我遇到了同样的问题,直到我读到以下内容才感到难过:
http://www.artfulsoftware.com/php_mysql_win.html
我正在使用Apache 2.2运行PHP 5.2。我的修复方法是将libmysql.dll文件复制到我的Apache bin目录中。
对于遇到此问题的人,我建议采取以下行动: 1)检查以确保加载的配置文件是您认为的位置(即,Apache没有使用某些默认的php.ini) - phpinfo()将提供此答案 2)检查以确保所有所需的扩展名都位于php \ ext文件夹中并包含在php.ini文件中(大多数常用扩展只需要取消注释) 3)尝试加载pdo_sqllite。如果在重新启动Apache之后在phpinfo()中出现这种情况,那么您已经将问题缩小到Apache无法加载必要的mysql扩展。 4)按照上面链接中的说明进行操作。
答案 10 :(得分:1)
如果您在IIS中使用PHP Manager,请执行以下操作:
打开IIS(我通常在启动时输入IIS打开它);
双击“PHP Manager”;
点击“启用或停用扩展程序”;
向下滚动以找到您选择的驱动程序(在我的情况下为php_pdo_mysqll.dll
),然后点击“启用”;
之后,司机应该出现并开始工作。
完成!希望这有助于某人,因为其他答案对我不起作用。
答案 11 :(得分:1)
PDO驱动程序没有值 - 您的dll条目无法在php.ini文件中进行orderized。检查dll扩展条目列表。
extension=php_pdo_mysql.dll
条目必须放在所有pdo条目旁边。与
相同extension=php_mysql.dll
条目必须放在所有没有pdo条目的旁边。
啤酒花有帮助..
答案 12 :(得分:0)
我在这里得到了提示:
我确保将c:/php
设置为PATH变量,然后将相应的dll移动到c:/php
目录(来自c:/php/ext
目录)。
现在一切都适合我,虽然我不太习惯在php目录中移动东西。
答案 13 :(得分:0)
我也有这个问题。我在Windows 7机器上安装了Apache / 2.2.22(Win32)PHP / 5.3.23。我的解决方案是将php.ini文件中的extension_dir = C:\ Program Files(x86)\ PHP \ ext更改为extension_dir =“C:\ Program Files(x86)\ PHP \ ext”。它只需要添加引号。
我还将php目录添加到了CLASSPATH。
答案 14 :(得分:0)
检查pdo * .dll文件是否在OS目录中的适当位置,检查这些文件的引用是否在php.ini中启用,检查你的dbconnection字符串是否正确,重新启动apache
答案 15 :(得分:0)
PHP错误PDO上不存在PDO
致命错误:Class&#39; DigitalToolBox \ PDO&#39;在第19行的C:\ SERVER \ www \ MyAPP \ DigitalToolBox \ MysqlConnectionTool.php中找不到
你可以看到pdo被加载了,因为列表中有这个命令:
print_r(get_loaded_extensions());
这个错误发生在使用命名空间,我们需要在代码的开头添加指令:
use PDO;
IF($ this-&gt;有效) $ voteForThis ++;