如何在 PHP 7+ 中为 SQL Server 启用 ODBC 驱动程序 17?



我运行的是 CentOS 7,所以我按照这里的说明(针对 RHEL 7 条目(进行操作,每一步都取得了成功。

我关注的链接:https://learn.microsoft.com/en-us/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. sudo 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...');
}
?>

重要的部分是确保驱动程序的"名称"与 {} 之间的 PHP 文件连接字符串中使用的驱动程序的名称相匹配。在本例中(默认值(,它是"ODBC Driver 17 for SQL Server"。

希望能帮助别人。我挣扎了一段时间。

最新更新