php_pdo_mysql.dll
中无法启用php_pdo_mysql.dll
。 我已经在php.ini中设置了extension=php_pdo.dll
和extension=php_pdo_mysql.dll
,但是当我检查phpinfo()
,项目PDO驱动程序 没有任何价值 。
而且我也找不到phpinfo()中的mysql信息,但是我已经设置了extension=php_mysql.dll
启用。
怎么了 ?
当我升级到PHP 5.4时,我也遇到了同样的问题。 我有
extension_dir = "ext"
在php.ini和php -m
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"
请尝试以下操作:在您的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"
在控制台尝试php -m
,它会显示PHP的启动错误。
使用phpinfo()检查以确保php.ini的路径与正在设置的相同。 在Windows机器上,通常会创建多个php.ini实例并导致混淆。
此外,从命令行调用PHP会给你一个错误消息,更多的细节,为什么它可能不会被加载。 这可能是你试图包含的扩展名与你的PHP安装不兼容。 即它是一个线程安全的二进制非线程安全的DLL或有一个编译器不匹配的地方使用vc9和vc6。
在Windows server 2012,Apache 2.4,PHP 5.4安装,尝试一切后,改变这个工作…
PHPIniDir "C:\php\"
至
PHPIniDir "C:/php/"
… GUH。
在更改php.ini配置之后,需要在Windows服务中重新启动Appche服务器。 然后扩展模块将被加载。 使用下面的代码来测试: <?php print_r(get_loaded_extensions());?>
我在使用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]
先出现了。 我猜宣布顺序很重要!
Mihai在2012年的评论中说:“在控制台上试用php -m,它会显示PHP的启动错误。” 这个建议被证明是最有帮助的。 如果在php.ini文件中有任何错误,Windows PHP管理器(IIS 8)不太清楚php.ini有什么问题。
转到命令提示符并在提示符下输入php -m
。 弹出消息(警报)会让你知道任何错误,并给出这些问题的行号。 在大多数情况下,我唯一的问题是我没有注意到(删除了分号)几个php.ini行,我不应该这样做。
对我来说,另一个有用的提示是放入扩展文件夹的完整路径(请参阅上面的“杰里米·普林”评论),在“警报”框中弹出“缺失的dll”消息。
我在这里得到了一些提示:
我确保将c:/php
设置为PATH变量,然后将相应的dll移到c:/php
目录(从c:/php/ext
目录)。
现在所有的工作,但我不完全适应PHP目录周围的东西。
我有同样的问题,并被困住,直到我读到以下内容:
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)按照上面的链接中的说明。
我也有这个问题。 我在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。
检查pdo * .dll文件是否在OS目录的适当位置,检查这些文件的引用是否在php.ini中启用,检查你的dbconnection字符串是否正确,重新启动apache
5.4上的PHP错误PDO不存在
致命错误:在第19行的C:\ SERVER \ www \ MyAPP \ DigitalToolBox \ MysqlConnectionTool.php中找不到类“DigitalToolBox \ PDO”
你可以看到pdo被加载,因为在这个命令列表中:
print_r(get_loaded_extensions());
这个错误发生在命名空间的使用上 ,我们需要在代码的开头添加指令:
use PDO;
IF($ this-> works)$ voteForThis ++;
如果您在IIS中使用PHP管理器 ,请执行以下操作:
打开IIS(我通常通过在开始键入IIS打开它);
双击“PHP管理器”;
点击“启用或禁用扩展程序”;
向下滚动找到您选择的驱动程序(在我的情况下php_pdo_mysqll.dll
),然后单击“启用”;
之后,司机应该出现,工作。
完成! 希望这有助于某人,因为其他答案不适合我。
PDO驱动程序没有价值 – 您的DLL条目无法在php.ini文件中进行定价。 检查dll扩展条目的列表。
extension=php_pdo_mysql.dll
条目必须放在所有pdo条目旁边。 与…一样
extension=php_mysql.dll
条目必须放在旁边没有pdo条目。
啤酒花,它帮助..
在PHP的7.1 x64在Windows与Apache 2.4 x64:
extension_dir =“ext”不适合我,
绝对路径: extension_dir =“C:\ DEV \ PHP71 \ ext \”运行良好