PHP7.4安装MSSQL扩展
首先需要加入微软的源
curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssqlrelease.repo
如果发现这个链接失效了,可以到https://packages.microsoft.com/config/rhel/7/找下
安装驱动
sudo yum install msodbcsql
sudo yum install mssql-tools
sudo yum install unixODBC-devel
当前是支持php7以上的版本
【下载pdo_sqlsrv扩展包 http://pecl.php.net/package/pdo_sqlsrv】
wget http://pecl.php.net/get/pdo_sqlsrv-5.8.1.tgz
然后解压并且安装
tar -zxvf pdo_sqlsrv-5.8.1.tgz
cd pdo_sqlsrv-5.8.1
【当前为宝塔,路径如下,使用对应php版本的phpize】
/www/server/php/74/bin/phpize
./configure --with-php-config=/www/server/php/74/bin/php-config
make && make install
加入PHP扩展
echo "extension = pdo_sqlsrv.so" >> /www/server/php/74/etc/php.ini
/etc/init.d/php-fpm-74 reload
【检查扩展是否安装成功】
/www/server/php/74/bin/php -m|grep -i sqlsrv
php -m
修改版本配置
vim /etc/crypto-policies/back-ends/opensslcnf.config
修改 SSL 最低版本
MinProtocol = TLSv1.0
SQL查询语句配置
请注意!目前MSSQL适配器并没有对 GB2312 进行转码处理,如果MSSQL中使用了非 uft8 字符将会出现问题。
SQL2012以上分页参数
在SQL Server 2012版本中,TSQL在Order By子句中新增 Offset-Fetch子句,用于从有序的结果集中,跳过一定数量的数据行,获取指定数量的数据行,从而达到数据行分页的目的。经过测试,从逻辑读取数量和响应的时间消耗来测评,使用Offset-Fetch实现的分页方式,比Row_Number()方式性能要高很多。
Offset-Fetch子句要求结果集是有序的,因此,只能用于order by 子句中,语法如下:
select * from table_name order by id offset 1 rows fetch next 2 rows only