PHP7.4安装MSSQL扩展

首先需要加入微软的源

  1. curl https://packages.microsoft.com/config/rhel/8/prod.repo > /etc/yum.repos.d/mssqlrelease.repo

如果发现这个链接失效了,可以到https://packages.microsoft.com/config/rhel/7/找下

安装驱动

  1. sudo yum install msodbcsql
  2. sudo yum install mssql-tools
  3. sudo yum install unixODBC-devel

当前是支持php7以上的版本
【下载pdo_sqlsrv扩展包 http://pecl.php.net/package/pdo_sqlsrv

  1. wget http://pecl.php.net/get/pdo_sqlsrv-5.8.1.tgz

然后解压并且安装

  1. tar -zxvf pdo_sqlsrv-5.8.1.tgz
  2. cd pdo_sqlsrv-5.8.1

【当前为宝塔,路径如下,使用对应php版本的phpize】

  1. /www/server/php/74/bin/phpize
  2. ./configure --with-php-config=/www/server/php/74/bin/php-config
  3. make && make install

加入PHP扩展

  1. echo "extension = pdo_sqlsrv.so" >> /www/server/php/74/etc/php.ini
  2. /etc/init.d/php-fpm-74 reload

【检查扩展是否安装成功】

  1. /www/server/php/74/bin/php -m|grep -i sqlsrv
  2. 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 子句中,语法如下:

  1. select * from table_name order by id offset 1 rows fetch next 2 rows only

轻易云适配器会对分页参数进行处理

SQL2012以下分页参数

SQL执行语句配置