今天因为一些原因,接触到了php连接MSSQL2008的问题,自己毕竟第一次接触,出了不少洋相,然后根据自己查阅资料学习等等,终于搞定了这个事情,因为在网上没找到一篇完整像样的文章,所以写了这一篇文章,希望能对大家有所帮助!谢谢!
对于PHP连接 SQL Server 数据库,可能有人会说这个有php_mssql扩展,一开始我也是这么想的,因为我也去找的这个扩展,不过当发现自己用不了的时候才知道,原来这个扩展在php5.2以后就不再提供了,所以我们只能使用微软提供给我们的扩展:https://www.microsoft.com/en-us/download/details.aspx?id=20098 (各种博客说这是32位的,64位的只有非官方的,因为我用的32位的所以我没有去搞,这里我也从隔壁博客抄过来了:http://pan.baidu.com/s/1o7FVblw)
如图根据他的提示来下载所需版本:
他后面也有写,有些版本需要下载ODBC驱动,所以一定要记住下载ODBC驱动才能使用,至于对这些技术的详细说明我也不懂,也没多看。
查看我们自己的版本的时候可以查看phpinfo中的信息,大概需要看这些信息:
下载好了扩展,是一个exe文件,直接安装到php的ext扩展目录下即可。在php.ini文件中配置好扩展重启Apache就可以在phpinfo上看到(至于怎么详细配置我就不做过多说明):
这样就代表安装扩展成功。我使用的是PDO,在PHP的文档上有写PDO关于SQLSRV的使用,地址:http://www.php.net/manual/zh/ref.pdo-sqlsrv.connection.php
我也没有多看详细的参数什么的,我直接看的例子,如图:
这里的例子比较全面,其中还举出了sqlserver特定端口的连接方式和数据库服务器的链接方式。
注意:如果未安装ODBC,会产生报错,报错信息也很友好,是叫你去安装ODBC,如:
Uncaught exception 'PDOException' with message 'SQLSTATE[IMSSP]: This extension requires the Microsoft ODBC Driver 11 for SQL Server to communicate with SQL Server. Access the following URL to download
the ODBC Driver 11 for SQL Server for x86: http://go.microsoft.com/fwlink/?LinkId=163712'
安装好了ODBC就不会出现这种情况了。
还有一点,就是当你安装好SQL Server 2008之后(我是使用的2008,不知道其他版本是否有相同问题)他有一个进程会占用80端口,查阅资料后,说是 SQL Server 的报告服务。如果你Apache使用80端口,就会导致Apache出错、无法启动,所以可以将这个进程杀死就好。
好的分享完了,希望对你会有一些帮助或者少走一些弯路!如果遇到一些问题可以留言,一起探讨学习,谢谢!