[英]PDO drivers no value in Windows
php_pdo_mysql.dll
无法在机器中启用。 I have set extension=php_pdo.dll
and extension=php_pdo_mysql.dll
enabled in php.ini, but when I checked phpinfo()
, the item PDO drivers is no value .
而且我在 phpinfo() 中找不到 mysql 信息,但我设置了extension=php_mysql.dll
启用。
怎么了?
当我升级到 PHP 5.4 时,我遇到了同样的问题。 我有
extension_dir = "ext"
in php.ini and php -m
was starting fine and reporting that it loaded pdo_mysql, but when I ran phpinfo.php through apache, the driver was missing.
我通过将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 的启动错误。
在 Windows Server 2012、Apache 2.4、php 5.4 安装上,在尝试了其他一切改变它的工作后...
PHPIniDir "C:\php\"
至
PHPIniDir "C:/php/"
……嗯。
检查 phpinfo() 以确保 php.ini 的路径与设置的路径相同。 在 Windows 机器上,通常会创建 php.ini 的多个实例并导致混淆。
此外,从命令行调用 php 会给您一条错误消息,其中包含有关它可能无法加载的更多详细信息。 您尝试包含的扩展可能与您的 PHP 安装不兼容。 即它是具有线程安全二进制文件的非线程安全 dll 或者在同时使用 vc9 和 vc6 的地方存在编译器不匹配。
在 PHP 7.1 x64 上 windows 和 apache 2.4 x64:
extension_dir = "ext" 对我不起作用,
绝对路径: extension_dir = "C:\DEV\PHP71\ext\" 效果很好
更改 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 的启动错误。” 这个建议被证明是最有帮助的。 If there are any errors in the php.ini file, Windows PHP manager (IIS 8) is not very clear about what's wrong with php.ini.
Go 到命令提示符并在提示符处键入php -m
。 弹出消息(警报)会让您知道任何错误,并为这些问题提供行号。 在大多数情况下,我唯一的问题是我在一些不应该这样做的 php.ini 行上取消了注释(删除了分号)。
另一个对我有用的提示是输入扩展文件夹的完整路径(请参阅 Jeremy Prine 上面的评论),这有助于“缺少 dll”消息开始在警报框中弹出。
我遇到了同样的问题,直到我读到以下内容才被难住:
http://www.artfulsoftware.com/php_mysql_win.html
我正在运行 PHP 5.2 和 Apache 2.2。 我的解决方法是将 libmysql.dll 文件复制到我的 Apache bin 目录中。
我会向遇到此问题的任何人推荐以下操作过程:1)检查以确保加载的配置文件在您认为的位置(即 Apache 未使用某些默认 php.ini) - phpinfo() 将提供2) 检查以确保所有需要的扩展都位于 php\ext 文件夹中,并包含在 php.ini 文件中(最流行的扩展只需取消注释) 3) 尝试加载 pdo_sqllite。 如果在重新启动 Apache 后这出现在 phpinfo() 中,则您已将问题缩小到 Apache 无法加载必要的 mysql 扩展。 4)按照上面链接中的说明进行操作。
如果您将PHP 管理器与 IIS 一起使用,请执行以下操作:
打开 IIS (我通常通过在开始时输入 IIS 来打开它);
双击“PHP 管理器”;
点击“启用或禁用扩展”;
向下滚动以找到您选择的驱动程序(在我的情况下php_pdo_mysqll.dll
),然后单击“启用”;
之后,司机应该出现并工作。
完成,希望这对某人有所帮助。 因为其他答案对我不起作用。
PDO 驱动程序没有价值 - 您的 dll 条目无法在 php.ini 文件中排序。 检查 dll 扩展条目列表。
extension=php_pdo_mysql.dll
条目必须放在所有 pdo 条目旁边。 如同
extension=php_mysql.dll
条目必须放在所有没有 pdo 条目的旁边。
啤酒花它有帮助..
我也有这个问题。 我在 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 字符串是否正确,重新启动 ZB6EFD606D118D0F62066E31419FF4
PHP 错误 PDO 在 5.4 上不存在
致命错误:Class 'DigitalToolBox\PDO' not found in C:\SERVER\www\MyAPP\DigitalToolBox\MysqlConnectionTool.php 上线
您可以看到 pdo 已加载,因为它在此命令的列表中:
print_r(get_loaded_extensions());
使用命名空间会发生此错误,我们需要在代码的开头添加指令:
use PDO;
IF ($this->works) $voteForThis++;
经过大量搜索,我发现了我的问题。 在 php.ini 中,扩展目录错误。 检查斜线方向。 它应该是反斜杠,如下行所示。 extension_dir = "C:\wamp\bin\php\php8.0.10\ext"
不正确:extension_dir = "C:/wamp/bin/php/php8.0.10/ext"
在 wampserver 中还检查 phpForApache.ini 是否存在相同的问题。
1.在 php.ini 中,删除 etxnesion dir 变量中的“目录”。它可能看起来像这样:
extension_dir = c:\PHP\ext
然后重新启动appache!
完毕!
我在这里得到了提示:
我确保我将c:/php
设置为 PATH 变量,然后将适当的 dll 移动到c:/php
目录中(来自c:/php/ext
目录)
现在一切都对我有用,尽管我对在 php 目录中移动东西并不完全满意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.