在Windows中PDO驱动程序没有价值

php_pdo_mysql.dll中无法启用php_pdo_mysql.dll 。 我已经在php.ini中设置了extension=php_pdo.dllextension=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”消息。

我在这里得到了一些提示:

http://wiki.cementhorizo​​n.com/display/CH/Solution+-+Unable+to+load+dynamic+library+C+php+ext+php_mysql.dll+-+the+specified+module+could+not+be+发&#x73B0;

我确保将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管理器 ,请执行以下操作:

  1. 打开IIS(我通常通过在开始键入IIS打开它); 启动IIS

  2. 双击“PHP管理器”; 点击PHP管理器

  3. 点击“启用或禁用扩展程序”; 启用/禁用扩展

  4. 向下滚动找到您选择的驱动程序(在我的情况下php_pdo_mysqll.dll ),然后单击“启用”; 滚动到驱动程序并启用

  5. 之后,司机应该出现,工作。 启用驱动程序

  6. 完成! 希望这有助于某人,因为其他答案不适合我。

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 \”运行良好