首先说明,安装部分,我是转载的。

一、首先是windows安装扩展,转载自:https://www.cnblogs.com/huixch/p/7065033.html

7.0.x的扩展下载地址:

Microsoft Drivers for PHP for SQL Server  https://www.microsoft.com/en-us/download/details.aspx?id=20098

ODBC Driver:

Microsoft® ODBC Driver 11 for SQL Server® - Windows (支持Sql Server® 2005)  https://www.microsoft.com/zh-CN/download/details.aspx?id=36434

Microsoft® ODBC Driver 13 for SQL Server® - Windows + Linux (支持最新的SQL Server® 2016)  https://www.microsoft.com/zh-CN/download/details.aspx?id=50420

安装配置:

下载SQL Server的PHP扩展(Microsoft Drivers for PHP for SQL Server),连接里有多个文件,只需要下载 SQLSRV40.EXE 即可。

解压后根据自己PHP的版本选择32位或64位的扩展,注意区分(Thread safe?)nts和ts。

复制扩展需要的文件到PHP扩展目录。(例如我这里使用的是:php_pdo_sqlsrv_7_ts_x64.dll 和  php_sqlsrv_7_ts_x64.dll)

修改php.ini添加以下两行来启用扩展:

extension=php_sqlsrv_7_ts_x64.dll
extension=php_pdo_sqlsrv_7_ts_x64.dll

安装ODBC Driver,根据自己的需要选择上面的地址下载并安装。

现在可以使用phpinfo()来查看是否成功加载了 pdo_sqlsrv 模块。

二、Centos安装扩展,转载自:http://www.thinkphp.cn/topic/47058.html

前提貌似文档说一定要PHP7以后的版本,以前很多都是第三方FreeTDS,再怎么搞也没有微软官方的稳定吧!
1、加入微软的源

  1. curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssqlrelease.repo
复制代码

2、防止冲突先卸载原有版本(可选)

  1. yum remove unixODBC
复制代码

3、安装驱动(三个都要装上,缺一不可)

  1. yum install msodbcsql mssql-tools unixODBC-devel
复制代码

4、下载pdo_sqlsrv扩展包  http://pecl.php.net/package/pdo_sqlsrv
5、以4.3.8为例

  1. tar -zxvf pdo_sqlsrv-4.3.8.tgz
复制代码

6、进入解压目录

  1. cd pdo_sqlsrv-4.0.8
复制代码

7、执行PHP的一个扩展命令

  1. /usr/local/php/bin/phpize
复制代码

8、编译

  1. ./configure --with-php-config=/usr/local/php/bin/php-config
复制代码

9、安装

  1. make && make install
复制代码

10、修改/usr/local/php/etc/php.ini 添加extension

extension = "pdo_sqlsrv.so"
11、重启php-fpm和nginx,大功告成

上面都是转载的,下面我重点说我的踩坑记录:

windows安装完后,2种方式调用,我最开始用的sqlsrv_connect方式,能成功调用,具体的api参考这里。

https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-driver-api-reference

但是上面的安装方法,Centos服务器最终是只安装pdo_sqlsrv.so的。所以只能采用另外一种pdo方式调用,才是通用的。

https://github.com/Microsoft/msphpsql/edit/master/sample/pdo_sqlsrv_sample.php

<?phpecho "\n";$serverName = "tcp:yourserver.database.windows.net,1433";$database = "yourdatabase";$uid = "yourusername";$pwd = "yourpassword";//Establishes the connection$conn = new PDO( "sqlsrv:server=$serverName ; Database = $database", $uid, $pwd);//Select Query$tsql = "SELECT [CompanyName] FROM SalesLT.Customer";//Executes the query$getProducts = $conn->query( $tsql );//Error handlingFormatErrors ($conn->errorInfo());$productCount = 0;$ctr = 0;?> <h1> First 10 results are : </h1><?phpwhile($row = $getProducts->fetch(PDO::FETCH_ASSOC)){if($ctr>9)break; $ctr++;echo($row['CompanyName']);echo("<br/>");$productCount++;}$getProducts = NULL;$tsql = "INSERT INTO SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) OUTPUT INSERTED.* VALUES ('SQL New 1', 'SQL New 2', 0, 0, getdate())";//Insert query$insertReview = $conn->query( $tsql );FormatErrors ($conn->errorInfo());?> <h1> Product Key inserted is :</h1> <?phpwhile($row = $insertReview->fetch(PDO::FETCH_ASSOC)){echo($row['ProductID']."<br/>");}$insertReview = NULL;//Delete Query//We are deleting the same record$tsql = "DELETE FROM [SalesLT].[Product] WHERE Name=?";$param = "SQL New 1";$deleteReview = $conn->prepare($tsql);$deleteReview->bindParam(1, $param);$deleteReview->execute();FormatErrors ($deleteReview->errorInfo());function FormatErrors( $error ){/* Display error. */echo "Error information: <br/>";echo "SQLSTATE: ".$error[0]."<br/>";echo "Code: ".$error[1]."<br/>";echo "Message: ".$error[2]."<br/>";}
?>

php7.*连接mssql数据库,使用PDO连接,同时兼容windows和centos相关推荐

  1. 【转发】PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库

    转发自:http://blog.csdn.net/lccee/article/details/54289076 课前小知识普及:MSSQL和SQL Server是同一个软件,叫法不同而已,MSSQL全 ...

  2. php5.3不能连接mssql数据库的解决方法

    这篇文章主要介绍了php5.3不能连接mssql数据库的解决方法,针对php5.3之后不支持mssql_connect函数提供了对应的解决方法,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例讲 ...

  3. php5.3无法加载mysql数据库模块_PHP_php5.3不能连接mssql数据库的解决方法,本文实例讲述了php5.3不能连接m - phpStudy...

    php5.3不能连接mssql数据库的解决方法 本文实例讲述了php5.3不能连接mssql数据库的解决方法.分享给大家供大家参考.具体分析如下: 自从php5.3之后系统就不支持mssql_conn ...

  4. mssql 远程无法连接mysql_在本地 怎么远程连接MSSQL数据库

    hp连接mssql数据库有几个注意事项,尤其mssql的多个版本.32位.64位都有区别. 首先,php.ini文件中;extension=php_pdo_mssql.dll ;extension=p ...

  5. php连接mssql数据库的几种方式

    数据库查询不外乎4个步骤,1.建立连接.2.输入查询代码.3.建立查询并取出数据.4.关闭连接. php连接mssql数据库有几个注意事项,尤其mssql的多个版本.32位.64位都有区别. 首先,p ...

  6. python mss_Python实现的连接mssql数据库操作示例

    本文实例讲述了python实现的连接mssql数据库操作.分享给大家供大家参考,具体如下: 1. 目标数据sql2008 r2 comprject=>testmodel 2. 安装python ...

  7. 数据库设置为php5.3,php5.3不能连接mssql数据库的解决方法,php5.3mssql_PHP教程

    php5.3不能连接mssql数据库的解决方法,php5.3mssql 本文实例讲述了php5.3不能连接mssql数据库的解决方法.分享给大家供大家参考.具体分析如下: 自从php5.3之后系统就不 ...

  8. linux连接mssql数据库,在Centos7下为PHP安装mssql扩展

    当前环境:Centos7.3  PHP5.6.21 1.安装freetds,让linux支持连接mssql数据库 注:登录用户为root,路径在根目录下(cd /) cd / wget ftp://f ...

  9. intouch sqlserver_Intouch:函数SQLCONNECT具有连接MSSQL数据库的能力。

    Intouch:函数SQLCONNECT具有连接MSSQL数据库的能力. Intouch:函数SQLCONNECT具有连接MSSQL数据库的能力. Mary had finished her home ...

  10. php连接mssql数据库的几种方法,php 连接mssql数据库与配置方法_PHP教程

    php 连接mssql数据库与配置方法 下面要来告诉各位朋友php连接mssql数据库并且与php mssql配置方法哦,这样如果你是初学者这文章可以让你从配置mssql 到让php连接mssql数据 ...

最新文章

  1. 第二代NumPy?阿里开源超大规模矩阵计算框架Mars
  2. 使用 8 位 YUV 格式的视频呈现
  3. Spring MVC 使用拦截器 HiddenHttpMethodFilter配置Rest风格的URL
  4. 告别2008 明天2009
  5. 《编译原理》实验预习报告——递归下降语法分析器的构建
  6. POJ - 2893 M × N Puzzle(n*m数码问题+逆序对结论)
  7. 电脑重新分区扩大c盘_两种方法,给电脑C盘增加10G的容量,电脑焕然一新
  8. [转载] java中创建对象的方式
  9. php 5 在虚拟主机上安装,Apache多虚拟主机多版本PHP(5.2+5.3+5.4)共存运行配置全过程...
  10. vs2019安装python库_vs2019安装和使用详细图文教程
  11. 多播报文的发送和接收
  12. js进栈出栈_[js]数组栈和队列操作
  13. Android data分区格式F2FS改为EXT4
  14. D2 日报 2019年 03月 12日
  15. 用Matlab筛选mirbase,一种基于miRBase数据库的无参的miRNA数据分析方法与流程
  16. C语言 打地鼠游戏 超级详解,各个函数与算法,设计思路与流程
  17. 为什么达芬奇能“艺工结合”,要从“T型设计”说起
  18. Linux进程间通信(下)
  19. 【实战项目】基于BP神经网络的温度预测(附源码)
  20. 关于ext4文件系统概述

热门文章

  1. 深圳python周末培训
  2. 老司机教你用C语言制作简单实用的撩妹神器!
  3. iOS SwiftUI教程和书籍汇总与点评
  4. 无损windows系统迁移
  5. 天上掉馅饼 期望dp+状压dp
  6. 新催收系统数据库表设计的小结
  7. wms仓库管理系统的入库模块
  8. 智能机器人-(三)轮式,足式机器人的基本概念
  9. 集搜客网络爬虫 v8.8.0
  10. dwg格式用什么打开