php连接sql server

立即有限天有个php连接sql
server的类,顺便学习习sql server 
说明:
 1:PHP5.2.x本身有只php_mssql.dll的扩大用来连接Sql
server,但是是dll只是用来连续没有版本 Sql
server的(2000以下版本),在Sql server
2005跟以上版本无法以mssql_connect连接受数据库。
 2:php5.3.x不再支持php_mssql.dll
拓展库了,及时用php5.2.x中之php_mssql.dll也无能为力用。
微软专门为PHP出了单SQL
Server的扩张(Windows版本的),对于Windows下下php开发SQL
Server应用来说,这个扩展有利于下SQL Server来开发php平台连接sql
server数据库管理体系。
同、php5.3以下的本连接sql
server

5.3之下的版扩展里面由带一个php_mssql.dll;接数据库的恢弘,可以动用这个扩展链接数据库,(只限于链接低版本数据库)。
切切实实的步骤如下:
1:首先安装sql
server,超级不好安装,我前安装的凡2008版本的,Windows过期后即便非可知为此了,然后重装还作不达,最后重装系统才装上
2:确定SQL装的当儿用之是掺认证模式,或SQL验证模式,然后打开php的部署文件(php.ini),开启mssql扩展(extension=php_pdo_mssql.dll前面的支行去丢)并且需要把mssql.secure_connection
= On 重开后生效。
如若比较顺利的口舌已经好接连数据库了,如果连不达标就是需要连续低下的布置:
3:检查ntwdblib文件的版本(php/下面与Apache/下面)下载正确的本的
ntwdblib.dll(2000.80.194.0)覆盖现有的DLL文件,(把ntwdblib.dll,php_mssql.dll
复制到system32目中呢足以)ntwdblib.dll
用于PHP连接MSSQL2005要2008的使文件。
4:测试连接:mssql_connect(‘localhost,1433’,
‘用户名’, ‘密码’);
二、php5.3+连接sql server
事实上5.3之下的php版本已很少用了,况且安全性与兼容性都不好,所以高版本的php还是于常见的。实践证明低版本的php连接数据库成功率比没有(2005之上之本子几乎无可知动用),推荐应用php5.3+
php使用微软专门的扩充 SQLSRV 来连接sqlserver数据库
步骤如下:
1:先到微软网站下充斥 SQL Server Driver for PHP
(https://www.microsoft.com/en-us/download/details.aspx?id=20098)是一个自解压的EXE文件,解压缩后你会得到这么几个文件:
PHP 1
里面的52、53意味着即是php的5.2.x和5.3.x
版本,选择和你php版本相匹配的;vc6或vc9的取舍要扣而用的凡什么web服务器软件,如果采用的凡IIS那即便摘vc9的,如果是Apache则选择vc6的,ts和nts的选料要扣而安装之php版本是线程安全版的还是非线程安全版,ts是线程安全,nts是非线程安全。
而无理解得以phpinfo里看Zend Extension Build这个特性如下图:

PHP 2

2:将扩充拷贝到拷到php/ext目录下,在php.ini文件,添加一下代码:
extension=在ext下的pdo扩展(用于pdo)
extension=在ext下的恢宏
3:重开服务器,打开phpinfo();看到以下状态就证明添加扩展成功,

PHP 3

4:连接测试:

 1 <?php
 2     $serverName = "(local)";
 3     $connectionInfo =  array("UID"=>"sa","PWD"=>"admin","Database"=>"db_online");
 4     $conn = sqlsrv_connect( $serverName, $connectionInfo);
 5     if( $conn ){
 6          echo "Connection established.\n";
 7     }else{
 8          echo "Connection could not be established.\n";
 9          die( var_dump(sqlsrv_errors()));
10     }
11     sqlsrv_close( $conn);
12 ?>

小心这里的连日不是用mssql_connect而是用sqlsrv_connect,在是版中,还有几单函数:
以此扩展为php新增了同样名目繁多sqlsrv_初始的函数PHP,常用之如下:

 1 sqlsrv_connect
 2 sqlsrv_close
 3 sqlsrv_commit
 4 sqlsrv_errors
 5 sqlsrv_fetch
 6 sqlsrv_fetch_array
 7 sqlsrv_fetch_metadata
 8 sqlsrv_num_rows
 9 sqlsrv_query
10 sqlsrv_rollback
11 sqlsrv_rows_affected
12 . . . 

详细信息可以参照:https://msdn.microsoft.com/zh-cn/library/cc296161%28v=SQL.90%29.aspx
开发文档

此外注意的是,如果运用这个扩展连接Sql server 2005同上述版本的sql
server(如sql server 2008),你还欲在机上事先安装 SQL Server Native
Client
再不会起如下错误:

 1 array
 2 0 =>array
 3 0 =>string'IMSSP'(length=5)
 4     'SQLSTATE' =>string'IMSSP'(length=5)
 5 1 =>int-49
 6     'code' =>int-49
 7 2 =>string'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'(length=216)
 8 'message' =>string'This extension requires the Microsoft SQL Server 2008 Native Client. Access the following URL to download the Microsoft SQL Server 2008 Native Client ODBC driver for x86: http://go.microsoft.com/fwlink/?LinkId=163712'(length=216)
 9 1 =>array
10 0 =>string'IM002'(length=5)
11     'SQLSTATE' =>string'IM002'(length=5)
12 1 =>int0
13     'code' =>int0
14 2 =>string'[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序'(length=71)
15 'message' =>string'[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序'(length=71)
16 . . . .

釜底抽薪措施:需要设置SQL Server 2008 Native Client ODBC
Driver,下载安装文件sqlncli.msi
下载地址:http://download.microsoft.com/download/0/E/6/0E67502A-22B4-4C47-92D3-0D223F117190/sqlncli.msi
安装后虽可以了。

总结:到这个全部做到,我以友好的计算机上作了大半天,中间出现了各种不当,总体感觉微软的物太无好用。不是不得已谁去用php链接sql
server,链接mysql不纵得矣。

相关安装链接:

sql server
卸载:http://www.jb51.net/article/37301.htm

sql server
安装:http://www.cnblogs.com/pvistely/archive/2008/12/31/1365702.html

sql
server安装:http://zhidao.baidu.com/link?url=6x87ogdDVZn65VB9220pplm_fXOlT01nA5HcPLb3CzY-t6q_Xd3wFJ9VQGqlcYlh0fEgpmsr41C6lxl18bJMfK

错误1:http://jingyan.baidu.com/article/03b2f78c4c7cad5ea237aec9.html

sql
server2005安装:http://wenku.baidu.com/link?url=XJv0doRJDNg-p1I3J3zpXu19Fx32SN9Wcl7nZpIaFewIozxDTCTAz_xs_-9vNF9KRxsBX6iS2WXpWYgzwYyfPeTbGU6GrmqBFFSZjD5Qfzq 

http://jingyan.baidu.com/article/4e5b3e19705db091901e24bb.html

相关文章