php 连接sqlserver2008

PHP自带的MSSQL扩展php_mssql.dll是给SQL Server 2000用的,连接不上2008?! -_-!!要使用SQL Server 2005以上版本,就要用到微软为PHP提供的最新第三方扩展SQL Server Driver for PHP才行,最新版本是2.0的,请见附件下载,安装解压到php的ext目录;




php_pdo_sqlsrv_52_nts.dll
php_pdo_sqlsrv_52_ts.dll
php_pdo_sqlsrv_53_nts_vc6.dll
php_pdo_sqlsrv_53_nts_vc9.dll
php_pdo_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc9.dll
php_sqlsrv_52_nts.dll
php_sqlsrv_52_ts.dll
php_sqlsrv_53_nts_vc6.dll
php_sqlsrv_53_nts_vc9.dll
php_sqlsrv_53_ts_vc6.dll
php_sqlsrv_53_ts_vc9.dll


关于VC6和VC9的区别
      VC6 版本是使用 Visual Studio 6 编译器编译的,如果你是在windows下使用Apache+PHP的,请选择VC6版本。
     VC9 版本是使用 Visual Studio 2008 编译器编译的,如果你是在windows下使用IIS+PHP的,请选择VC9版本。

开始配置
选择php_sqlsrv_53_ts.dll和php_pdo_sqlsrv_53_ts.dll。把文件拷贝到PHP文件夹下的ext目录下,然后在配置文件php.ini
的Extensions后面加上:
extension=php_sqlsrv_53_ts.dll
extension=php_pdo_sqlsrv_53_ts.dll
再重启Apache服务。
最后测试一下是否成功,在PHP中执行phpinfo()的查看sqlsrv、看图画红线处、如图所示这样就表示连接成功了!!



 


1.Windows Authentication连接
<?php
$serverName = "(localhost)";
$connectionInfo = array("Database"=>"test","ConnectionPooling"=>false);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn == false)
{
    echo "连接失败!";
   die( print_r( sqlsrv_errors(), true));
}
?>

2.SQL Server Authentication连接

<?php
$serverName = "localhost"; //数据库服务器地址
$uid = "sa"; //数据库用户名
$pwd = "123"; //数据库密码
$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"cart");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn == false)
{
     echo "连接失败!";
    die( print_r( sqlsrv_errors(), true));
}
//执行有结果集的SQL语句
$query = sqlsrv_query($conn, "select * from tb_goods");
while($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC))

{
    echo $row[0]."-----".$row[1]."<br/>";
}
//执行增删改的SQL语句
$rs=sqlsrv_query($conn,"update tb_goods set name='中国劲酒' where name='劲酒'");
$num=sqlsrv_rows_affected($rs);//返回修改的行数
if($num>0)
{
  echo '修改成功!'.$num ;
}
else
{
  echo '修改失败!';
}
?>

详情:https://technet.microsoft.com/zh-cn/library/cc296174(SQL.90).aspx



SQL Server Driver for PHP 包含以下函数:
函数           说明
sqlsrv_begin_transaction     开始事务。
sqlsrv_cancel     取消语句;并放弃相应语句的所有未决结果。
sqlsrv_client_info     提供有关客户端的信息。
sqlsrv_close     关闭连接。释放与相应连接关联的所有资源。
sqlsrv_commit     提交事务。
sqlsrv_configure     更改错误处理和日志记录配置。
sqlsrv_connect     创建一个连接,并将其打开。
sqlsrv_errors     返回关于上一操作的错误和/或警告信息。
sqlsrv_execute     执行预定义语句。
sqlsrv_fetch     使下一行的数据可供读取。
sqlsrv_fetch_array     以数值索引数组、关联数组或这两种数组的形式检索下一行的数据。
sqlsrv_fetch_object     以对象形式检索下一行的数据。
sqlsrv_field_metadata     返回字段元数据。
sqlsrv_free_stmt     关闭语句。释放与相应语句关联的所有资源。
sqlsrv_get_config     返回指定配置设置的值。
sqlsrv_get_field     按索引检索当前行中的字段。可以指定 PHP 返回类型。
sqlsrv_has_rows     检测结果集是否具有一行或多行。
sqlsrv_next_result     使下一结果可供处理。
sqlsrv_num_rows     报告结果集中的行数。
sqlsrv_num_fields     检索活动结果集中的字段数。
sqlsrv_prepare     准备 Transact-SQL 查询,但不执行该查询。隐式绑定参数。
sqlsrv_query     准备 Transact-SQL 查询,并将其执行。
sqlsrv_rollback     回滚事务。
sqlsrv_rows_affected     返回有所修改的行的数目。
sqlsrv_send_stream_data     在每次调用函数时向服务器发送最多八千字节 (8 KB) 的数据。
sqlsrv_server_info     提供有关服务器的信息。






 

猜你喜欢

转载自zxs19861202.iteye.com/blog/2182576