当前位置:首页 > 数据库 > Sqlserver

php5.3.x连接MS SQL server2008

2.2 问题的解决方案

在我百度了一些解决方案以后,我了解到,服务器名称不能填写默认的:(local)。应该以这样的格式来填写:计算机名称实例名称。以我个人为例,如图3。

 php5.3.x连接MS SQL server2008 - 文章图片

图3 正确的登陆填写

既然能登陆到数据库,就说明我们的安装是没有问题的。下面我们进行一些关于PHP的设置。

3 为PHP准备适当的库文件

PHP5.3以后,其连接数据库的原生代码是由Microsoft团队来维护的。我们需要的库文件(在windows下是.dll文件)在PHP的源码包里是没有的,所以我们需要另行下载。

参照PHP官方文档是最好的选择。

http://php.net/manual/zh/book.sqlsrv.php

3.1 下载并安装Microsoft SQL Server 2012 Native Client

说句题外话,这一步是我在写博客时,阅读PHP manual中才得知的。怪不得我第一遍在操作时,碰到了php报错,中文大意就是“本机没有安装Microsoft SQL Server 2012 Native Client”。开来英文好,能阅读官方文档是王道啊!

下载Microsoft SQL Server 2012 Native Client的网址如下:

http://php.net/manual/zh/sqlsrv.requirements.php

3.2 下载适当的Microsoft SQL Server Driver for PHP

由官方文档我们可以得知,对应于PHP5.3.x的适用程序是SQLSRV 3.0。下载网址如下:

http://www.microsoft.com/en-us/download/details.aspx?id=20098

 

3.3 选择适当的库文件

根据官方文档,我们把3.2步骤中下载的程序——SQLSRV30.EXE——解压缩以后,会得到8个驱动文件(驱动文件以.dll为结尾)。如图4。

php5.3.x连接MS SQL server2008 - 文章图片 

图4 SQLSRV30.EXE解压缩展开之后

 

根据官方文档,php5.3线程安全版本应选择 php_pdo_sqlsrv_53_ts.dll 和 php_sqlsrv_53_ts.dll两个文件,放置在php根目录下的ext文件夹下。例如,在我的机器中,路径是D:lampphp5ext。

3.4 怎么样得知自己的php是否线程安全

在phpinfo中,我们查看这样的一条信息。如图5。

 php5.3.x连接MS SQL server2008 - 文章图片

图5 phpinfo输出信息

 

“enable”表示该php是线程安全版本的反之就是非线程安全。

4. 配置php.ini文件

关于php.ini文件的配置,完全可以参照如下的网址。

http://msdn.microsoft.com/en-us/library/cc296203(v=sql.105).aspx

 

4.1 使php加载SQLSRV驱动

在php.ini的拓展模块加载区——文件中extension那块位置,填写如下配置,使php默认加载SQLSRV 驱动。

         extension=php_sqlsrv_53_ts.dll

4.2 使php加载PDO_SQLSRV驱动

在与4.1中同样的位置,填写如下配置。

         extension=php_pdo_sqlsrv_53_ts.dll

为了使php开启pdo驱动,我们还要开启pdo驱动。 

         extension=php_pdo.dll

4.3验证pdo_sqlsrv是否加载成功

在phpinfo中看到画黄线的单词,表示加载成功。如图6所示。

 php5.3.x连接MS SQL server2008 - 文章图片

图6 phpinfo的输出

5. 在php运行时动态加载

我也是现在才知道,php还有这样的神奇功能,让我们暂时注释掉php配置文件里给你刚刚写好的配置,试一下动态加载的功能。

根据官方文档,dl()这个函数在php5.3被废除了。我因此无法进行测试。

但是微软官方的php代码如下:

 dl(‘php_pdo_sqlsrv_53_ts.dll‘);

6. 注意事项

在MS SQL server中,数据表能名称不能叫user,因为有个系统表的名称就是user!

php5.3.x连接MS SQL server2008

标签:

本文系统来源:http://www.cnblogs.com/fengyubo/p/4625491.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!