【问题标题】:How to enable ODBC Driver 17 for SQL Server in PHP 7+?如何在 PHP 7+ 中为 SQL Server 启用 ODBC Driver 17?
【发布时间】:2018-08-18 00:22:43
【问题描述】:

我正在运行 CentOS 7,因此我按照此处的说明进行操作(对于 RHEL 7 条目),并且每一步都成功。

我关注的链接:https://docs.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() 进行测试(是否有帮助)。

按照上述链接的说明操作后,您能否提供步骤?

【问题讨论】:

    标签: sql-server sql-server-2016 php-7.2


    【解决方案1】:

    好吧,就像通常发生的那样,在一位朋友提醒我有关 /etc/odbcinst.ini 文件的信息后,我进行了一些挖掘并能够找到答案……供未来的 Google 员工和 So'ers 使用:

    1. sudo vi /etc/odbcinst.ini

    您应该会看到类似这样的内容(假设您按照 Distro 到 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 文件的连接字符串中使用的驱动程序的名称相匹配。在这种情况下(默认),它是“ODBC Driver 17 for SQL Server”。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-10
      • 2019-12-11
      • 2021-10-21
      相关资源
      最近更新 更多