此链接建议我应该能够从Linux(Centos(服务器(PHP 7.2(连接到MSSQL,而无需任何第三方安装:http://php.net/manual/en/function.odbc-connect.php
像这样(他们的例子(:
// Microsoft SQL Server using the SQL Native Client 10.0 ODBC Driver -
allows connection to SQL 7, 2000, 2005 and 2008
$connection = odbc_connect("Driver={SQL Server Native Client
10.0};Server=$server;Database=$database;", $user, $password);
但运气不好。我得到这个错误:
Connection Failed::[unixODBC][Driver Manager]Data source name not found, and no default driver specified
我需要安装其他东西吗?或者还有什么事我没有做?已安装用于ODBC的PDO驱动程序(unixODBC(。
工作正常。以下是我所做的:
- 我将PHP更新到7.2
- 根据此链接安装的ODBC驱动程序:https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-服务器-2017
将我的连接字符串从dblib更改为ODBC:
//old
//$db = new PDO("dblib:host=".HOST.";dbname=".NAME.";charset=utf8", "".USER."", "".PASS."");
//new
$db = new PDO("odbc:Driver={ODBC Driver 17 for SQL Server};Server=".HOST.";Database=".NAME.";", "".USER."", "".PASS."");
不再有FreeTDS或PDO_dblb。