簡體   English   中英

PHP 警告 PHP 啟動無法加載動態庫 php_pdo_sqlsrv_7_ts_x64.dll

[英]PHP Warning PHP Startup Unable to load dynamic library php_pdo_sqlsrv_7_ts_x64.dll

  • 操作系統:Windows 8.1
  • 拱:x64
  • php: PHP 7.1.6
  • mssql:Mssql Server 2014 express
  • 驅動程序:SQLSRV 4.0
  • IDE:PhpStorm

我正在嘗試讓 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_ts_x64.dll
  • php_pdo_sqlsrv_72_ts_x86.dll
  • php_pdo_sqlsrv_72_nts_x64.dll
  • php_pdo_sqlsrv_72_nts_x86.dll

我啟用了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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM