php5.2 连接 SQL Server2008
如果你见到下面这一段输出的话,那么你有福了!!!!
Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -49 [code] => -49 [2] => This extension requires the Microsoft SQL Server 2012 Native Client. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712 [message] => This extension requires the Microsoft SQL Server 2012 Native Client. Access the following URL to download the Microsoft SQL Server 2012 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712 ) [1] => Array ( [0] => IM002 [SQLSTATE] => IM002 [1] => 0 [code] => 0 [2] => [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 [message] => [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 ) )
之前从来没使用过SQLserver,以前一直使的是MySQL。这些都不是关键,关键是我用的是php编程语言,还是比较高的5.3(相对于sql server2008来说)。刚开始不会用,甚至数据库都不会连,用什么SQL语句都不知道,于是啊,一顿百度!!!百度出N种方法,但是,没有一种成功过,比如装驱动,改php.ini配置文件……我就不断的尝试了近一周,才总算把数据库给连上了。但是最终用的是php5.2版本,不知道为什么5.3总是不成功,以后以机会再尝试,现在要忙项目了!!
进入正题
我电脑是win7系统+SQL Server2008+php5.2+apache2.4配置。
1.首先安装数据库之后,用windows身份验证(默认登录方式,不需要密码)登录数据库。
2.进入之后,选择对象资源管理器,打开之后,有一个安全性的选项,打开之后,有登录名这个选项,打开之后,会看到很多的登录。
3.如果你现在想右键单击登录名来创建一个新的登录账号的话,那你就错了。
虽然那样的话,你能创建一个用户,但是并不能使用(试过很多次,都不行)。
好了,到这个时候,悬崖勒马吧!!!
4.回到桌面,右键点击“我的电脑”,-->选择“系统工具”,-->选择“本地用户和组”,-->选择“用户”,-->右键点击“用户”,-->选择“新用户”,现在你可以设置一个用户和密码了。设置完后,取消“用户下次登录时须更改密码”,然后保存,退出。假设我创建的是Admin2,密码为123456
接下来,返回第三步,现在你可以创建一个新的用户了。
1.登录名-->(单击右键)-->新建登录名-->确定
2.在常规一栏,点击搜索,在下方输入名称-->确定-->取消window身份验证,选择SQL Server身份验证-->取消登录密码过期和必须更改两个选项。然后选择下方的数据库和语言
3.服务器角色一栏我现在并不懂,所以我选的是bulkadmin,dbcreate,processadmin,public。你自己看着办
4.用户映射一栏,还有下面的安全对象和状态自己把握,根据需要选择。
5.点击确定,此时,你已经成功创建一个用户,完成总进度的90%。
接下来
打开phpstudy或者wampserver,我用的是phpstudyX64 2014版,打开php扩展及设置-->php扩展,看到其中的php_sqlsvr和php_pdo_sqlsvr,开启他们俩。
然后,打开php配置文件php.ini,删除extension=php_sqlsrv.dll和extension=php_pdo_sqlsrv.dll前面的分号(取消注释),然后保存,重启phpstudy即可。wampserver做法相似。
然后就可以连接数据库了
我使用的是sqlsvr_connect()连接,注意主机别写错,别以为全是localhost,当初我也是使用localhost,但就是不成功。
代码如下
<?php $serverName = "HOMEMIC-26JSJJD\SQLEXPRESS"; $connectionInfo = array( "Database"=>"test", "UID"=>"admin2", "PWD"=>"123456","Charset"=>"utf8"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn ) { echo "Connection established.<br />"; }else{ echo "Connection could not be established.<br />"; die( print_r( sqlsrv_errors(), true)); } ?>
good luck!