微软的PHP连接SQL Server数据库 (Microsoft Drivers for PHP for SQL Server )
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)连接数据库
/* Specify the server and connection string attributes. */ $serverName = "(local)"; $connectionInfo = array( "Database"=>"AdventureWorks"); /* Connect using Windows Authentication. */ $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn === false ) { echo "Unable to connect.</br>"; 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.</br>"; die( print_r( sqlsrv_errors(), true)); } /* Retrieve and display the results of the query. */ $row = sqlsrv_fetch_array($stmt); echo "User login: ".$row[0]."</br>"; /* Free statement and connection resources. */ sqlsrv_free_stmt( $stmt); sqlsrv_close( $conn); ?>
注: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 | 提供有关服务器的信息。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构