繁体   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