Ubuntu18.04下使用PHP7.2的连接sql server数据库

本文介绍了SQL Server数据库,建议phper用pdo方式连接mssql数据库,需安装freetds程序和php-dblib扩展。详细说明了freetds程序的下载与编译安装,以及php-dblib扩展的安装方式。还指出dblib不支持limit命令,最后解决了源码编译php扩展时找不到freetds的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。Microsoft SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,目前最新版本是2017年份推出的SQL SERVER 2017。

二、安装说明

我们建议phper使用pdo方式连接数据库,pdo可以为你屏蔽数据库之间的繁琐的语句差异,让我们的代码变得更加简洁

php要连接mssql数据库,需要安装以下扩展和依赖程序进行支持:

1:安装freetds程序
2:安装php扩展pdo-dblib

dblib是数据库元件库,该库是基于sqlser修改的数据库驱动,包含了连接mssql数据库的函数库

FreeTDS 是一个开源的程序库,是TDS(表列数据流 )协议的再次实现。它可以被用在Sybase的db-lib或者ct-lib库。它也包含一个ODBC的库。允许许多开源的应用软件比如Perl和PHP(或者你自己的c或C++程序)去连接到Sybase或 Microsoft SQL服务器

三、安装freetds程序

3.1:下载freetds源码压缩包
mkdir -p /home/www/freetds/source  
cd /home/www/freetds/source  
wget  http://wjh-oss-prod.oss-cn-shenzhen.aliyuncs.com/oss/admin/freetds-1.2.3.tar.gz  //可以到官网下载最新包  
3.2:编译安装freetds程序
tar -zxvf freetds-1.1.23.tar.gz  
cd freetds-1.1.23  
./configure   
  --prefix=/usr/local/freetds  //注意,该目录很重要,后面编译php-dblib扩展的时候会用到  
  --with-tdsver=7.4            //这个地方是数据版本号, 最新的是8.0, 使用最多的是7.0+, 如果版本报错可以换个版本重新编译  
  --enable-msdblib   
  --enable-dbmfix   
  --with-gnu-ld    
  --enable-shared   
  --enable-static  



make  
make install  

四、安装php-dblib扩展

这里使用源码编译安装,你也可以根据实际情况选择apt或者yum安装

cd /home/www/php/source/php-7.2.17/ext/pdo_dblib  
phpize  
./configure  --with-php-config=php-config  


make  
make install  

Ubuntu18.04下源码编译php7.2扩展程序icon-default.png?t=N7T8https://blog.csdn.net/ma_jian_ping/article/details/133077742?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22133077742%22%2C%22source%22%3A%22ma_jian_ping%22%7D

dblib不是mssql的100%全功能,不支持limit命令, 所以无法使用mssql的分页功能,但是这并不影响我们使用mssql的其它功能

五、可能遇到的问题

问题:在源码编译php扩展的时候遇到以下问题

我们明明已经装了freetds啊,为啥找不到呢? 既然报错那我们就找报错的代码行,该报错位置在扩展目录下的config.m4文件,报错代码行如下图:

这里有个php扩展源码的配置bug,在配置文件里面配置的freetds依赖路径有问题,所有找不到我们安装的freetds。

解决:修改config.m4文件,添加我们自己的freetds安装路径,如下图:

修改过config.m4文件后,需要重新执行 phpize生成新的配置文件,再次编译顺利通过

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泪痕110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值