繁体   English   中英

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

[英]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 一起使用,请执行以下操作:

  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 条目的旁边。

啤酒花它有帮助..

我也有这个问题。 我在 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

  1. 将编辑好的ini文件(php.ini)复制到C:\windows dir

然后重新启动appache!

完毕!

我在这里得到了提示:

http://wiki.cementhorizon.com/display/CH/Solution+-+Unable+to+load+dynamic+library+C+php+ext+php_mysql.dll+-+the+specified+module+could+not+be+成立

我确保我将c:/php设置为 PATH 变量,然后将适当的 dll 移动到c:/php目录中(来自c:/php/ext目录)

现在一切都对我有用,尽管我对在 php 目录中移动东西并不完全满意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM