簡體   English   中英

如何在PHP 7+中為SQL Server啟用ODBC Driver 17?

[英]How to enable ODBC Driver 17 for SQL Server in PHP 7+?

我正在運行CentOS 7,因此我按照此處的說明進行操作(針對RHEL 7條目),並且在每個步驟都成功。

我遵循的鏈接: https : //docs.microsoft.com/zh-cn/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server- 2017年

我現在有點困惑,因為我知道我必須在PHP(v7.2.9)端進行配置,才能“看到”此安裝。 我不知道“擴展名”的實際安裝位​​置,因此我不確定如何修改PHP.ini文件,也不確定如何在PHP中設置連接字符串以對其進行測試。

我目前正在使用odbc_connect()進行測試(是否有幫助)。

遵循上述鏈接的說明后,您可以提供步驟嗎?

好吧,就像通常發生的那樣,做了一些挖掘,並在一個伙伴提醒我有關/etc/odbcinst.ini文件的信息之后找到了答案……對於將來的Google員工和So'ers:

  1. 須藤vi /etc/odbcinst.ini

您應該看到類似這樣的內容(假設您遵循了發行版T的說明,沒有任何錯誤-原始帖子中的鏈接):

[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.2.so.0.1
UsageCount=1

所以...一旦確認,請創建一個基本的PHP文件進行測試。 我在這里使用PHP 7.2.9:

<?php

// Configuration Settings for connection to Database
$host = 'SERVERNAME';
$user = 'dbuser';
$pass = 'dbpass';
$db   = 'InstanceName';
$conn = "DRIVER={ODBC Driver 17 for SQL Server};SERVER=$host;PORT=1433;DATABASE=$db";

// Open connection
$db_connect = odbc_connect($conn, $user, $pass);

// Check for successful connection
if ( $db_connect ) {
    echo 'Beer time!';
} else {
    die('Error connecting...');
}

?>

重要的部分是確保驅動程序的“名稱”(在odbcinst文件中的[]之間顯示)與您在{}之間的PHP文件的連接字符串中使用的驅動程序的名稱匹配。 在這種情況下(默認),它是“ SQL Server的ODBC驅動程序17”。

希望可以幫助別人。 我掙扎了一段時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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