簡體   English   中英

如何從 Ubuntu 18.04 使用 PHP 連接到 MSSQL Server?

[英]How to connect to MSSQL Server with PHP from Ubuntu 18.04?

我想從 Ubunutu 18.04 建立一個 MSSQL 連接。 進行此設置非常困難,但我知道到目前為止我可以使用 sql_srv 類或 pdo 類。 但是當我想連接時,連接失敗並出現錯誤

Array ( [0] => Array ( [0] => 01000 [SQLSTATE] => 01000 [1] => 0 [code] => 0 [2] => [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 13 for SQL Server' : file not found [message] => [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 13 for SQL Server' : file not found ) ).

我該如何解決這個問題,這個錯誤是什么意思? 我已經安裝了 ODBC 17。

 odbcinst -j
unixODBC 2.3.7
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

nano /etc/odbcinst.ini 顯示:

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

我應該怎么做才能從 ubuntu 18.04 連接到 MSSQL Server 2014?

已解決:通過這三頁我可以安裝正確的驅動程序版本:

https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15#ubuntu17

Pecl install sqlsrv 返回沒有可用於包的版本

http://pecl.php.net/package/sqlsrv/5.8.0下載驅動程序

sudo bash -c "echo extension=sqlsrv.so > /etc/php/7.2/mods-available/sqlsrv.ini"
sudo ln -s /etc/php/7.2/mods-available/sqlsrv.ini /etc/php/7.2/apache2/conf.d/sqlsrv.ini
sudo ln -s /etc/php/7.2/mods-available/sqlsrv.ini /etc/php/7.2/cli/conf.d/sqlsrv.ini
sudo bash -c "echo extension=pdo_sqlsrv.so > /etc/php/7.2/mods-available/pdo_sqlsrv.ini"
sudo ln -s /etc/php/7.2/mods-available/pdo_sqlsrv.ini /etc/php/7.2/apache2/conf.d/pdo_sqlsrv.ini
sudo ln -s /etc/php/7.2/mods-available/pdo_sqlsrv.ini /etc/php/7.2/cli/conf.d/pdo_sqlsrv.ini


sudo systemctl restart apache2
  1. 安裝 PECL
  2. 按照https://docs.microsoft.com/en-us/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver15 上提到的步驟操作
  3. 重啟阿帕奇
  4. 使用下面的 PHP 腳本來測試連接
//format: serverName\\instanceName, portNumber (default is 1433) $serverName = "localhost"; $connectionInfo = array("Database" => "dbName", "UID" => "myUserName", "PWD" => "myPassword"); $conn = sqlsrv_connect($serverName, $connectionInfo); if ($conn) { echo "Got a connection!<br />"; } else { echo "Connection could not be established.<br />"; die(print_r(sqlsrv_errors(), true)); }

使用Microsoft Drivers for PHP for Microsoft SQL Server 您將在那里找到詳細的安裝說明。

暫無
暫無

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

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