![](/img/trans.png)
[英]How to fix: PHP Startup: Unable to load dynamic library 'php_pdo_sqlsrv_80_nts_x64'?
[英]PHP Warning PHP Startup Unable to load dynamic library php_pdo_sqlsrv_7_ts_x64.dll
我正在嘗試讓 mssql 驅動程序工作。 我從微軟下載了 pdo 驅動程序,將文件php_pdo_sqlsrv_7_nts_x64.dll
放入C:\\Program Files\\PHP\\ext
並編輯php.ini
以添加extension=php_pdo_sqlsrv_7_nts_x64.dll
到它。
這是結果:
$ php -v
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files\PHP\ext\php_pdo_sqlsrv_7_nts_x64.dll' - The specified procedure could not be found.
in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files\PHP\ext\php_sqlsrv_7_nts_x64.dll.dll' - The specified procedure could not be found.
in Unknown on line 0
PHP 7.1.6 (cli) (built: Jun 8 2017 01:53:41) ( ZTS MSVC14 (Visual C++ 2015) x64 )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
可能與此重復: PHP 警告:PHP 啟動:無法加載動態庫 php_pdo_mssql.dll
但是那個人從來沒有回答過,而且已經四歲了。
就我而言,此錯誤(但具有不同的 DLL 版本)是由於將錯誤的 PHP SQL SLQSRV DLL 添加到我的 PHP 擴展中引起的:
我正在使用 XAMPP 的 PHP 7.2.21。
我添加了這些 DLL(包含在 SQLSRV561.exe 中):
我啟用了php_pdo_sqlsrv_72_nts_x64.dll
作為 PHP 擴展名,但是nts dll 版本對於我的 PHP 版本來說是錯誤的。 當我啟用ts dll 版本時,錯誤消失了。 (我正在使用 IIS。)
線程安全 (TS) 和非線程安全 (NTS) 是可用的兩種不同的 PHP 版本。
查看發布信息是個好主意。
這樣你就可以看到它支持什么版本。
https://github.com/Microsoft/msphpsql/releases
就我而言,mssql 驅動程序仍然是 php 最新穩定版本的一個次要版本,因此我必須將 php 從 7.1 降級到 7.0。
你的 PHP 版本線程安全嗎? 您正在使用此版本的庫,您可以在 Windows 的命令行中使用"php -i|find "Thread"
。
我使用 php_pdo_sqlsrv_73_nts_x64.dll 在 windows server 2019 和 IIS10 上使用 PHP732 嘗試了這個,工作正常,沒有問題。 如果我啟用 73_ts_x64,它會發出警告。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.