登录站点

用户名

密码

注册

查看日志|返回日志列表

Centos7 PHP 使用ODBC远程连接sqlserver

2023-10-09 09:51

内容导读

收集整理的这篇技术教程文章主要介绍了Centos7 PHP 使用ODBC远程连接sqlserver,部分内容来自互联网,小编现在分享给大家,供广大互联网技能从业者学习和参考。

环境要求

服务器:Centos7.9
WEB服务器:Nginx
PHP:7.4编译方式安装(PHP版本需要对应SQLSRV兼容版本)

PDP_SQLSRV版本:5.10.1

SQLSRV版本:5.10.1

远端MSSQL服务器:2012 2014
其他环境无要求,根据要求自行安装

Centos7 PHP 使用ODBC远程连接sqlserver

  1. 安装 Microsoft ODBC Driver for SQL Server 按照官方安装文档安装

    官方文档中找到适合centos7的安装代码

#CENTOS7
更换为微软源:
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
#如果有旧版本的先删除
yum remove unixODBC-utf16 unixODBC-utf16-devel
yum install msodbcsql17
yum install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# optional: for unixODBC development headers
sudo yum install unixODBC-devel

安装完成后测试看是否安装成功,下图就是安装成功了,ODBC安装在了根目录下

odbcinst -j


在odbcinst.ini查看sqlsrv的驱动安装位置,打开配置文件obdc.ini,添加驱动和远程连接的ip地址

 /etc/odbcinst.ini(原有配置文件,不需要修改)
#odbcinst.ini配置
[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.10.so.4.1
UsageCount=1

#odbc.ini配置(原配置为空,需要添加)
[SQLSRV]
Driver       = /opt/microsoft/msodbcsql17/lib64/libmsodbcsql-17.10.so.4.1
Description  = SQLSRV ODBC Driver DSN 
Server       = 192.168.2.1#远程IP地址
Port         = 1433




测试是否连通

isql -v SQLSRV 用户 密码

这就是可以访问了,安装完成。

  1. 下载安装PHP pdo_srv扩展,pdo_sqlsrv的下载地址这里有很多的版本可以根据情况选择,我用的是5.1.0版本,下载解压编译安装。
cd /usr/local/src/
wget https://pecl.php.net/get/pdo_sqlsrv-5.10.1.tgz
tar -zxvf pdo_sqlsrv-5.10.1.tgz
cd pdo_sqlsrv-5.10.1
phpize
#PHP-Config是在php安装目录的bin目录下,根据php安装位置修改--with-php-config
./configure --with-php-config=/www/server/php/74/bin/php-config
#没有报错就可以执行安装,有问题可根据报错信息修改
make && make install

安装成功后,会返回一个php扩展目录,需要把扩展目录和pdo_sqlsrv添加到php.ini



同样的方式及流程,安装:sqlsrv-5.10.1.tgz

cd /usr/local/src/
wget https://pecl.php.net/get/sqlsrv-5.10.1.tgz
tar -zxvf sqlsrv-5.10.1.tgz
cd sqlsrv-5.10.1
phpize

#PHP-Config是在php安装目录的bin目录下,根据php安装位置修改--with-php-config
./configure --with-php-config=/www/server/php/74/bin/php-config
#没有报错就可以执行安装,有问题可根据报错信息修改
make && make install
把以下内容加到php.ini,保存并重启php-fpm,/etc/init.d/php-fpm-74 restart
extension_dir=extension_dir=/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/
extension=pdo_sqlsrv.so
extension=sqlsrv.so

查看phpinfo,就可以看到扩展已经安装成功


代码实例

SQLSRV模式:
$serverName = "192.168.2.1"; // MSSQL服务器IP

$connectionOptions = array(

    "Database" => "mssqletst", // 数据库名

    "Uid" => "mstest",          // 用户名

    "PWD" => "abcd1234"        // 密码

);


$conn = sqlsrv_connect($serverName, $connectionOptions);

$query = "SELECT top 10 * FROM dbo.Plug_CCBPay"; // 替换为你的查询语句

$result = sqlsrv_query($conn, $query);

if ($result === false) {

    die(print_r(sqlsrv_errors(), true));

}

while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {

    echo $row['p_OpenID'] . ' | ' . $row['p_Remark'] . ' | ' .  $row['

    '] ."<br>";

}


PDO_SQLSRV模式:

$serverName = "192.168.2.1"; // MSSQL服务器IP

$conn = new PDO( "sqlsrv:server=$serverName ; Database=mssqletst", "mstest", "abcd1234");  

$stmt = $conn->query("select top 10 * from dbo.Plug_CCBPay");

while ($result = $stmt->fetch()) {

    echo $result['p_OpenID'] . ' | ' . $result['p_Remark'] . ' | ' . $result['p_AddTime'] . "<br>";

}


内容总结

以上是为您收集整理的Centos7 PHP 使用ODBC远程连接sqlserver全部内容,希望能够帮您解决Centos7 PHP 使用ODBC远程连接sqlserver所遇到的各种问题。 如果觉得教程内容还不错,欢迎将网站推荐给程序员朋友。

分享 60 次阅读 | 0 个评论

留下脚印

评论