PHP连接SQL Server

6 篇文章 0 订阅

使用过SQL Server的人应该都清楚,SQL Server常用的有两种认证方式,一种是本地系统账户认证(Windows Authentication ),一种是使用用户名和密码(SQL Server Authentication ),第二种认证方式必须启用SQL Server的混合模式。

 

  1.Windows Authentication连接部分代码段:

<?php

$serverName = "(local)";

$connectionInfo = array("Database"=>"TestingInfo","ConnectionPooling"=>false);

$conn = sqlsrv_connect( $serverName,$connectionInfo);

if( $conn == false)

{

    echo "连接失败!";

   die( print_r( sqlsrv_errors(), true));

}

?>

 

  2.SQL Server Authentication连接部分代码段:

<?php

$serverName = "(local)";

$uid = "sa";

$pwd = "******";

$connectionInfo =  array("UID"=>$uid,"PWD"=>$pwd,"Database"=>"TestingInfo");

$conn = sqlsrv_connect( $serverName,$connectionInfo);

if( $conn == false)

{

    echo "连接失败!";

   die( print_r( sqlsrv_errors(), true));

}

?>

  参考官方提供的英文原文档,针对参数$connectionInfo做一个简单说明,因为$connectionInfo是一个Hash表结构,下边参数格式为:

Key[DataType]:

Description(Default Value):键[数据类型]:描述(默认值)

【1】APP[String类型]:

使用的应用程序名称【*:我自己不太懂得这个地方的意义,不好意思】(没有默认值)

【2】ConnectionPooling[1或true为打开连接池,0或false为关闭连接池]:

用来设置是否打开SQL Server的连接池功能(默认值为true(1))

【3】Database[String类型]:

连接的数据库的名称,所有连接提供的数据库名称类似ASP.NET里面web.config的连接字符串里面的数据库实例名,如果设置了Database的连接属性,驱动会默认使用SQL Server支持的Transact-SQL脚本来操作所有提供的数据库实例,包括添加、删除、查询、修改等各种操作(默认为登陆的操作系统里面的数据库,我没有测试过,应该是直接运行程序的(local))

【4】Encrypt[1或true为执行加密,0或false为不执行加密]:

设置是否对传入服务器的SQL脚本执行加密操作,当然如果使用加密操作会对系统性能存在一定影响,不过影响不明显(默认为false(0))

【5】Failover_Partner[String类型]:

提供一个服务器镜像,此属性应该是用于主服务器Down掉的情况,当主服务器Down掉的时候,提供一个备份的数据库和服务器的实例镜像作为备份的服务器处理。(未设置默认值)

【6】LoginTimeout[Integer类型]:

提供连接的超时时间,时间单位为秒。(未设置)

【7】PWD[String类型]:

当使用SQL Server Authentication认证方式的时候需要提供该属性,该属性为登陆用户的密码。(未设置任何值)

【8】QuotedId[1或true就是用SQL-92标准,0或false就是用遗留的标准]:

设置使用SQL脚本的标准是使用SQL-92标准还是使用遗留的Transact-SQL标准。(默认值为true(1))

【9】TraceFile[String类型]:

此属性主要为监控数据使用,可用于调试或者维护,它的值为一个路径,SQL Server会将所有的数据执行操作写入该路径,至于具体内容是什么,我没有使用过。(未设置默认值)

【10】TraceOn[1或true打开监控,0或false关闭监控]:

是否打开ODBC连接方式的监控。(默认值false(0))

【11】TransactionIsolation[常量值]:

提供数据库的事务级别(SQLSRV_TXN_READ_COMMITTED)

常量值包括

SQLSRV_TXN_READ_UNCOMMITTED,

SQLSRV_TXN_READ_COMMITTED,

SQLSRV_TXN_REPEATABLE_READ,

SQLSRV_TXN_SNAPSHOT,

SQLSRV_TXN_SERIALIZABLE

【12】TrustServerCertificate[1或true设置为客户端限制,0或false设置为客户端不限制]:

如果设置为 true,则使用 SSL 对通道进行加密,但不通过证书链对可信度进行验证。如果将TrustServerCertificate 设置为 true 并将 Encrypt 设置为 false,则不对通道进行加密。可识别的值为 true、false、yes 和 no。有关更多信息,请参见 SQL Server 2005 Books Online(《SQL Server 2005 联机丛书》)中的“Encryption Hierarchy”(加密层次结构)和“Using Encryption Without Validation”(使用不验证的加密)。(默认值:false(0))

【13】UID[String类型]:

当使用SQL Server Authentication认证方式的时候需要提供该属性,该属性为登陆用户的用户名。(未设置任何值)

【14】WSID[String类型]:

监控计算机名称,此属性很少用。(未设置任何值)

 

-------------------------------------------------------------------

 

连接数据库中文乱码解决方案:

 

第一种方法:把网页存为GBK编码,网页里设置charset=gbk
第二种方法:用iconv或者mb_convert_encoding把从数据库里读出的字符串从GBK转换到UTF-8编码,网页里设置charset=utf-8。
iconv( 'GBK ', 'UTF-8 ',$string)就是把字符串从GBK转换到UTF-8.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值