php mssql2008,php 连接 mssql sql2008

1.下载微软提供的dll

php5.4需下载 SQLSRV30.EXE,这个exe是一个自解压文件,下载后双击选路径解压会得到一堆dll和说明文件。

2、将对应自己php版本的dll文件copy到php ext目录下

ts是指线程安全(ThreadSafe),nts是指线程不安全,得根据安装的php版本来选择,如果不确定,就分别尝试一下;

我用的php5.4,就将php_sqlsrv_54_ts.dll复制到ext目录下,

例如:D:\Program Files\PHP 5.4\ext

3、修改php.ini文件

增加二行:extension=php_pdo_sqlsrv_54_ts.dll

extension=php_sqlsrv_54_ts.dll

修改一行 :   mssql.secure_connection = Off  改为on

4、重启apache

5、配置MS SQL Server2005

a、打开 SQL Server 配置管理器:SQL Server Configuration Manager,打开协议;

b、启用“Named Pipes”和“TCP/IP”,默认是已禁用的;

c、右键点击“TCP/IP”,选择“属性”,选择“IP地址”,在”ALLIP“下的“TCP动态端口”后填写1433;

d、重启SQL Server。

备注:记得开启sa登录。

6、安装Microsoft SQL Server 2012 Native Client.msi

根据自己系统在PHP服务器所在机器安装Microsoft SQL Server 2012 Native Client.msi,分X64和X86的。

此工具不支持XP系统哦,所以XP去用PHP5.3吧~

另外这个是安装在php环境的的服务器下面 PS:不是独立数据库服务器的请自动忽略。

7、php数据库代码

/*连接数据库,5.4的函数不再是mssql_connect了:*/

$conInfo=array("Database"=>"att2008", "UID"=>"att2008", "PWD"=>"att2008");

$conn=sqlsrv_connect("127.0.0.1", $conInfo);

/*判断连接成功与否:*/

if( $conn == false )

{

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

}

else

{

echo("yes
");

}

$table_name = "USERINFO";

/*如果你牛叉的数据库表名是中文,记得加上这句:*/

//$table_name = iconv("UTF-8", "GB2312", "牛叉的中文表名");

/*query语句:*/

$rs=sqlsrv_query($conn, "select * from ".$table_name);

if($rs == false)

{

echo("false
");

}

else

{

while($row = sqlsrv_fetch_array($rs))

{

print_r($row);

}

sqlsrv_free_stmt($rs);

sqlsrv_close($conn);

}

?>

8,至此,网上教程复制完毕,但是该方法不支持XP系统!(我使用的是phpstudy,非常便捷的一体式多合一服务)

但是该方法中开启了mssql.php,于是使用以下代码可以在XP中连接sql2008

$server ="LPP-20140312390\s2008";  //服务器IP地址,如果是本地,可以写成localhost,本例是多个实例

$uid ="sa";  //用户名

$pwd ="sql2008"; //密码

$database ="test";  //数据库名称

//进行数据库连接

$conn =mssql_connect($server,$uid,$pwd) or die ("connect failed");

mssql_select_db($database,$conn);

//执行查询语句

$query ="select * from demo";

$row =mssql_query($query);

//打印输出查询结果

while($list=mssql_fetch_array($row))

{

print_r($list);

echo "
";

}

//PDO连接不成功,没有微软的库,2012库不在支持XP

//    $conn = new PDO( "sqlsrv:Server=(LPP-20140312390\s2008);Database=test", "sa", "sql2008");

//    $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

// $query = 'select * from demo';

// $stmt = $conn->query( $query );

// while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ){

//    print_r( $row );

// }

9,xp系统中连接SqlServer2008

找到sqlsrv20,这里面是支持xp的DLL,支持范围包括5.3,5.2,不支持5.4,其中nt是线程安全,v6v9意思是apache是哪种语言编写的,是c++9还是c++6,这个安装的时候提示错误 就更改一个

下载Microsoft SQL Server 2008 Native Client.msi,这个是必须的

9.2重启服务器

测试代码

//PDO连接方式

// $conn = new PDO( "sqlsrv:Server=LPP-20140312390\S2008;Database=CDTXYYBJP", "sa", "sql2008");

try {

$conn = new PDO( "sqlsrv:Server=LPP-20140312390\S2008;Database=CDTXYYBJP", NULL, NULL);

$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

}

catch( PDOException $e ) {

die( "Error connecting to SQL Server" );

}

echo "Connected to SQL Server\n";

$query = 'Select * From sysobjects ';

$stmt = $conn->query( $query );

while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ){

p( $row );

}

// /* Specify the server and connection string attributes. */

// $serverName = "LPP-20140312390\s2008";

// $connectionInfo = array( "Database"=>"CDTXYYBJP");

// /* Connect using Windows Authentication. */

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

// if( $conn === false )

// {

//      echo "Unable to connect.";

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

// }

//  Query SQL Server for the login of the user accessing the

// database.

// $tsql = "SELECT CONVERT(varchar(32), SUSER_SNAME())";

// $stmt = sqlsrv_query( $conn, $tsql);

// if( $stmt === false )

// {

//      echo "Error in executing query.";

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

// }

// /* Retrieve and display the results of the query. */

// $row = sqlsrv_fetch_array($stmt);

// echo "User login: ".$row[0]."";

// /* Free statement and connection resources. */

// sqlsrv_free_stmt( $stmt);

// sqlsrv_close( $conn);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值