隐藏

微软的PHP连接SQL Server数据库 (Microsoft Drivers for PHP for SQL Server )

发布:2014/7/8 22:07:23作者:管理员 来源:本站 浏览次数:1724

PHP自带的php_mssql.dll文件已经满足不了sql server2005及其以上版本的使用了。微软也随之发布了SQL Server Driver for PHP来做相应的支持。

其中SQL Server Driver for PHP有两个版本支持不同的php版本。

1.SQL Server Driver for PHP2.0版本适用于PHP 5.2.x版本

下载地址:http://download.csdn.net/detail/xxhysj/4793158

2.SQL Server Driver for PHP3.0版本适用于PHP 5.3.x版本

下载地址:http://download.csdn.net/detail/xxhysj/4793176

 

具体操作如下:

1)按上述地址下载驱动包;

2)将DLL文件解压到 PHP extension_dir 目录

      extension_dir = "X:\PHP\ext"

3)在php.ini配置文件内引用相应的动态链接库文件

      extension=php_sqlsrv_52_ts_vc6.dll
      extension=php_pdo_sqlsrv_52_ts_vc6.dll

       extension=php_pdo.dll
4)重启Apache

5)连接数据库

  1. /* Specify the server and connection string attributes. */  
  2. $serverName = "(local)";  
  3. $connectionInfo = array"Database"=>"AdventureWorks");  
  4.   
  5. /* Connect using Windows Authentication. */  
  6. $conn = sqlsrv_connect( $serverName$connectionInfo);  
  7. if$conn === false )  
  8. {  
  9.      echo "Unable to connect.</br>";  
  10.      die( print_r( sqlsrv_errors(), true));  
  11. }  
  12.   
  13. /* Query SQL Server for the login of the user accessing the 
  14. database. */  
  15. $tsql = "SELECT CONVERT(varchar(32), SUSER_SNAME())";  
  16. $stmt = sqlsrv_query( $conn$tsql);  
  17. if$stmt === false )  
  18. {  
  19.      echo "Error in executing query.</br>";  
  20.      die( print_r( sqlsrv_errors(), true));  
  21. }  
  22.   
  23. /* Retrieve and display the results of the query. */  
  24. $row = sqlsrv_fetch_array($stmt);  
  25. echo "User login: ".$row[0]."</br>";  
  26.   
  27. /* Free statement and connection resources. */  
  28. sqlsrv_free_stmt( $stmt);  
  29. sqlsrv_close( $conn);  
  30. ?>  

 

注:API 参考 (SQL Server Driver for PHP)

用于 SQL Server Driver for PHP 的 API 名称是 sqlsrv。所有sqlsrv函数都以sqlsrv_打头,后跟动词或名词。后跟动词的函数用于执行特定操作,而后跟名词的函数用于返回特定形式的元数据。

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 提供有关服务器的信息。