php7.*连接mssql数据库,使用PDO连接,同时兼容windows和centos
首先说明,安装部分,我是转载的。
一、首先是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、加入微软的源
- curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssqlrelease.repo
2、防止冲突先卸载原有版本(可选)
- yum remove unixODBC
3、安装驱动(三个都要装上,缺一不可)
- yum install msodbcsql mssql-tools unixODBC-devel
4、下载pdo_sqlsrv扩展包 http://pecl.php.net/package/pdo_sqlsrv
5、以4.3.8为例
- tar -zxvf pdo_sqlsrv-4.3.8.tgz
6、进入解压目录
- cd pdo_sqlsrv-4.0.8
7、执行PHP的一个扩展命令
- /usr/local/php/bin/phpize
8、编译
- ./configure --with-php-config=/usr/local/php/bin/php-config
9、安装
- 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相关推荐
- 【转发】PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
转发自:http://blog.csdn.net/lccee/article/details/54289076 课前小知识普及:MSSQL和SQL Server是同一个软件,叫法不同而已,MSSQL全 ...
- php5.3不能连接mssql数据库的解决方法
这篇文章主要介绍了php5.3不能连接mssql数据库的解决方法,针对php5.3之后不支持mssql_connect函数提供了对应的解决方法,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例讲 ...
- php5.3无法加载mysql数据库模块_PHP_php5.3不能连接mssql数据库的解决方法,本文实例讲述了php5.3不能连接m - phpStudy...
php5.3不能连接mssql数据库的解决方法 本文实例讲述了php5.3不能连接mssql数据库的解决方法.分享给大家供大家参考.具体分析如下: 自从php5.3之后系统就不支持mssql_conn ...
- mssql 远程无法连接mysql_在本地 怎么远程连接MSSQL数据库
hp连接mssql数据库有几个注意事项,尤其mssql的多个版本.32位.64位都有区别. 首先,php.ini文件中;extension=php_pdo_mssql.dll ;extension=p ...
- php连接mssql数据库的几种方式
数据库查询不外乎4个步骤,1.建立连接.2.输入查询代码.3.建立查询并取出数据.4.关闭连接. php连接mssql数据库有几个注意事项,尤其mssql的多个版本.32位.64位都有区别. 首先,p ...
- python mss_Python实现的连接mssql数据库操作示例
本文实例讲述了python实现的连接mssql数据库操作.分享给大家供大家参考,具体如下: 1. 目标数据sql2008 r2 comprject=>testmodel 2. 安装python ...
- 数据库设置为php5.3,php5.3不能连接mssql数据库的解决方法,php5.3mssql_PHP教程
php5.3不能连接mssql数据库的解决方法,php5.3mssql 本文实例讲述了php5.3不能连接mssql数据库的解决方法.分享给大家供大家参考.具体分析如下: 自从php5.3之后系统就不 ...
- linux连接mssql数据库,在Centos7下为PHP安装mssql扩展
当前环境:Centos7.3 PHP5.6.21 1.安装freetds,让linux支持连接mssql数据库 注:登录用户为root,路径在根目录下(cd /) cd / wget ftp://f ...
- intouch sqlserver_Intouch:函数SQLCONNECT具有连接MSSQL数据库的能力。
Intouch:函数SQLCONNECT具有连接MSSQL数据库的能力. Intouch:函数SQLCONNECT具有连接MSSQL数据库的能力. Mary had finished her home ...
- php连接mssql数据库的几种方法,php 连接mssql数据库与配置方法_PHP教程
php 连接mssql数据库与配置方法 下面要来告诉各位朋友php连接mssql数据库并且与php mssql配置方法哦,这样如果你是初学者这文章可以让你从配置mssql 到让php连接mssql数据 ...
最新文章
- 第二代NumPy?阿里开源超大规模矩阵计算框架Mars
- 使用 8 位 YUV 格式的视频呈现
- Spring MVC 使用拦截器 HiddenHttpMethodFilter配置Rest风格的URL
- 告别2008 明天2009
- 《编译原理》实验预习报告——递归下降语法分析器的构建
- POJ - 2893 M × N Puzzle(n*m数码问题+逆序对结论)
- 电脑重新分区扩大c盘_两种方法,给电脑C盘增加10G的容量,电脑焕然一新
- [转载] java中创建对象的方式
- php 5 在虚拟主机上安装,Apache多虚拟主机多版本PHP(5.2+5.3+5.4)共存运行配置全过程...
- vs2019安装python库_vs2019安装和使用详细图文教程
- 多播报文的发送和接收
- js进栈出栈_[js]数组栈和队列操作
- Android data分区格式F2FS改为EXT4
- D2 日报 2019年 03月 12日
- 用Matlab筛选mirbase,一种基于miRBase数据库的无参的miRNA数据分析方法与流程
- C语言 打地鼠游戏 超级详解,各个函数与算法,设计思路与流程
- 为什么达芬奇能“艺工结合”,要从“T型设计”说起
- Linux进程间通信(下)
- 【实战项目】基于BP神经网络的温度预测(附源码)
- 关于ext4文件系统概述