在此分成三步走:
第一部:查看配置,下载文件
首先查看自己的php和sql server版本
Php文件输入echoPHP_VERSION运行脚本就可以看到
如果是php7,则搭配sql server2016,即若你的php版本是7那么sql server必须是2016
其余的根据以下信息来搭配
SQLSRV的版本与php的关系
Version 4.0 supports PHP 7.0+
Version 3.2 supports PHP 5.6, 5.5, and 5.4
Version 3.1 supports PHP 5.5 and 5.4
Version 3.0 supports PHP 5.4.
SQLSRV与ODBC driver for server的关系
Version 4.0ODBC Driver 11或者ODBC Driver 13.
Versions 3.2/ 3.1ODBCDriver 11.
Version 3.0Microsoft SQL Server 2012 Native Client x86.(若为php5.4建议使用version3.1或3.2)
ODBCdriverforserver与sql server版本的关系
ODBC driver 11支持Microsoft SQLServer 2005, 2008, 2008 R2, SQL Server 2012, SQL Server 2014 and Windows AzureSQL Database
ODBC driver 13支持Microsoft SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, SQL Server2014, SQL Server 2016 (Preview), Analytics Platform System, Azure SQL Databaseand Azure SQL Data Warehouse.
比如我的是sql server 2008 R2和php5.5
选择可以选择的SQLSRV为3.1或3.2版本,对应的ODBC driver时ODBC driver11,ODBC drive11支持的sql server中有sql server 2008 R2,所以最后选择的是ODBC driver 11和SQLSRV3.1或3.2
今天徒弟的机子上的环境是sql server 2016和php7
所以选择的是ODBC driver 13和SQLSRV4.0
选好后下载相应的文件,下载地址如下:
ODBC Driver 11 for sql server下载地址https://www.microsoft.com/en-us/download/details.aspx?id=36434
ODBC Driver 13 for sql server下载地址https://www.microsoft.com/en-us/download/details.aspx?id=50420
SQLSRV下载地址https://www.microsoft.com/en-us/download/details.aspx?id=20098
第二步:安装PHP扩展
新建一个php文件输入在浏览器里运行php文件,找到PHP Extension Build选项
可以看到它的值里有TS或者NTS,记录下来
查看php扩展路径打开php安装目录下的php.ini文件搜索extension_dir
查看它的值如下
其实就是你刚才复制的两个文件,其中的数字55和ts可能有所不同
保存配置文件,重启服务器apache,运行刚才的脚本看是否有PDO_SQLSRV
如下:
若有那么恭喜你成功了第二步
第三步:安装驱动器,设置sql server
双击安装下载下来的ODBC driver文件,安装完成后设置sql server
打开sql server management studio使用sql server的用户名和密码登录
若不能登录则使用windows系统登录,对着服务器名右键->属性->安全性,选中”sql
server和windows身份验证模式”
保存编辑
重启sql server服务看是否可以用账号密码登录,直到可以登录未止。
打开SQL SERVE R配置管理工具:
点击sql server网络配置协议在右侧启动TCP/IP,对TCP/IP右键->启动,右键->属性->IP地址,在最下方的IPALL里的TCP发端口改为1433
保存,同时对客户端协议做同样的操作,重启sql server服务
到此第三步完成
测试:新建PHP文件,输入如下代码:
替换其中的serverName,UID,PWD,Database
ServerName是sql server的实例名,UID是登录名,PWD是密码.运行脚本可以知道是否链接成功
已经从sql server数据库里读出数据了
另有一个坑,那就是乱码,sql server不支持utf8格式,而我个人写html和php时比较喜欢使用utf8格式,所以出现了乱码,网上的教程大多使用格式转换函数来解决,还是有点麻烦,所以直接把php脚本的编码方式设置为GDB2312类型,在php脚本文件里设置编码方式为GBK类型就解决了
博客地址http://www.cnblogs.com/scarecrowlxb/p/6204101.html
二〇一六年十二月二十日星期二
梁小兵
网友评论