我正在嘗試連接到我在 Linux VM 上託管的 SQL Server 資料庫。我在我的開發 Windows 機器上運行 xampp,連接來自我正在建立的 php 網站。我想我需要使用 sqlsrv 來連線。我從https://learn.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view= 下載了dll sql-server-ver15&viewFallbackFrom=sql-server-2019
我已將必要的 dll 檔案移至我的 xamppphpetc 目錄。我還驗證了 php.ini 檔案中的擴充目錄是 extension_dir="C:xamppphpext"
以下內容已新增至 php.ini 的 Dynamic Extensions 部分:
extension=php_sqlsrv_81_ts_x86.dll extension=php_pdo_sqlsrv_81_ts_x86.dll extension=php8ts.dll
我在網路上找到了有關刪除php_ 前綴、刪除.dll 後綴、使用ts 或非ts、將所有檔案移到擴充目錄、僅將上面列出的幾個檔案移動到目錄中的信息,不包括php8ts。 dll 等。我已經嘗試了上面的每一個配置,無論是邏輯的還是不邏輯的。
這是我的網站的範例連接程式碼:
$conn = new PDO('sqlsrv:Server=my_server_ip\MSSQLSERVER;Database=dbname', 'username', 'password');
if ($conn === false) {
echo "Error (sqlsrv_connect): ".print_r(sqlsrv_errors(), true);
exit;
} else {
echo "success";
}
我嘗試了多個不同的連接範例。透過上面的操作,我收到此錯誤:
致命錯誤:未捕獲的PDOException:在C:xampphtdocssiteindex.php:123 中找不到驅動程式堆疊追蹤:#0 C:xampphtdocssiteindex.php(123): PDO ->__construct('sqlsrv:Server= my_server_ip', 'username', 'password') #1 {main} 在第123 行的C:xampphtdocssiteindex.php 中拋出
從這裡我邏輯上認為好吧,讓我們透過回顯來檢查 phpinfo(); 。清單中的任何位置都沒有列出 sqlsrv 或 PDO 變體的任何內容。即使在sqlsrv的頁面上ctrl f,也只能發現上面的錯誤。
我已驗證已安裝 ODBC 驅動程式。
我嘗試過的其他事情是使用 sqlsrv_connect 而不是 PDO。我發現與我的 php 版本(8.1)相關的資訊有衝突,但我想無論如何還是要嘗試一下。但是,當我遇到該變體時,我得到:
致命錯誤:呼叫未定義的函數 sqlsrv_connect()
對我來說,很明顯我的 .dll 沒有被識別或類似的東西。然而我一生都無法理解為什麼。我已經驗證所有內容都以管理員身份運行,多次重新啟動 xampp,刪除/重新下載 dll 等。
誰能指出我可能沒有想到的任何明顯問題?
1 個答案
已解決。有兩個問題。
-
我的 Xampp 安裝已損壞。它無法識別我在頁面上使用
echo phpinfo();時注意到的任何新 DLL。 -
出於某種原因,ini 檔案配置嘗試使用 x86 dll 而不是 x64,即使擴充功能在 ini 中編寫為 x64 也是如此。
解決步驟:
-
我再次使用預設設定重新安裝並重新配置了 Xampp,現在可以識別 dll。
-
我從 Xampp 的擴充目錄中刪除了 x86 dll。
最終的 php.ini 是這樣的:
extension=php_sqlsrv_81_ts_x64.dll extension=php_pdo_sqlsrv_81_ts_x64.dll extension=php8ts.dll extension=php_pdo_odbc.dll extension=php_pdo.dll
使用最終的 .dll 可能是多餘的,但它仍然可以按預期工作。確保驗證 sqlsrv 或 pdo_sqlsrv 的正確版本,因為可能會出現與您的 php 版本的相容性問題。
Hot Questions
Hot Tools
vc9-vc14(32+64位元)運行庫合集(連結在下方)
phpStudy安裝所需運行函式庫集合下載
VC9 32位
VC9 32位元 phpstudy整合安裝環境運行庫
php程式設計師工具箱完整版
程式設計師工具箱 v1.0 php整合環境
VC11 32位
VC11 32位元 phpstudy整合安裝環境運行庫
SublimeText3漢化版
中文版,非常好用
熱門話題
20335
7
13531
4
11850
4
8835
17
8420
7





