[英]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.