1. 前言
在PHP中,操作MSSQL数据库需要使用MSSQL扩展,而有些PHP环境中默认并不支持该扩展。本文将详细介绍如何在PHP中操作MSSQL数据库。
2. 安装MSSQL扩展
2.1 下载对应的DLL文件
首先需要下载对应的MSSQL扩展DLL文件,可以在 https://windows.php.net/downloads/pecl/releases/mssql/ 下载需要的DLL文件。下载前需要确认自己的PHP版本和环境(x86或x64)。例如,如果PHP版本为7.3,而环境为x86,则需要下载“php_sqlsrv_73_ts.dll”。
2.2 配置php.ini文件
将下载的DLL文件放到PHP的“ext”目录下,并修改php.ini文件。找到如下代码所在的位置:
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
然后在下方添加以下代码:
extension=php_sqlsrv_73_ts.dll
extension=php_pdo_sqlsrv_73_ts.dll
其中,“php_sqlsrv_73_ts.dll”和“php_pdo_sqlsrv_73_ts.dll”对应下载的DLL文件。完成后需要重启Web服务器。
3. 使用MSSQL扩展操作数据库
3.1 连接数据库
使用MSSQL扩展连接数据库需要使用以下代码:
<?php
$serverName = "localhost";
$connectionOptions = array("Database"=>"mydb","UID"=>"myuser","PWD"=>"mypassword");
$conn = sqlsrv_connect($serverName, $connectionOptions);
if($conn === false) {
die(print_r(sqlsrv_errors(), true));
}
?>
其中,“$serverName”为数据库服务器名称,如“localhost”;“$connectionOptions”为连接选项的数组,包括“Database”(数据库名)、“UID”(用户名)和“PWD”(密码),需根据实际情况修改。使用“sqlsrv_connect”函数连接数据库,成功返回连接句柄,否则返回false。如果连接失败,使用“sqlsrv_errors”函数输出错误信息并结束程序。
3.2 查询数据
查询数据需要使用以下代码:
<?php
$tsql = "SELECT * FROM mytable";
$stmt = sqlsrv_query($conn, $tsql);
if($stmt === false) {
die(print_r(sqlsrv_errors(), true));
}
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
echo $row["id"].", ".$row["name"].", ".$row["age"]."<br />";
}
sqlsrv_free_stmt($stmt);
?>
其中,“$tsql”为查询语句,需根据实际情况修改。使用“sqlsrv_query”函数执行查询,成功返回结果集类型(在此为$stmt),否则返回false。使用“sqlsrv_fetch_array”函数获取每行数据,并使用“echo”输出。查询结束后需要使用“sqlsrv_free_stmt”函数释放结果集。
3.3 插入/更新/删除数据
插入/更新/删除数据需要使用以下代码:
<?php
$tsql = "INSERT INTO mytable (name, age) VALUES (?, ?)";
$params = array("myname", 20);
$stmt = sqlsrv_query($conn, $tsql, $params);
if($stmt === false) {
die(print_r(sqlsrv_errors(), true));
}
$affectedRows = sqlsrv_rows_affected($stmt);
echo $affectedRows." rows affected.<br />";
sqlsrv_free_stmt($stmt);
?>
其中,“$tsql”为插入/更新/删除语句,需根据实际情况修改。使用“sqlsrv_query”函数执行操作,其中第三个参数($params)为数组类型,包括查询参数的值。成功返回结果集类型,否则返回false。使用“sqlsrv_rows_affected”函数获取受影响的行数,并使用“echo”输出。操作结束后需要使用“sqlsrv_free_stmt”函数释放结果集。
4. 结语
本文详细介绍了如何安装MSSQL扩展及使用MSSQL扩展操作数据库。在实际应用中,可能还需要处理更为复杂的操作,如分页查询、事务处理等,需要根据实际情况进行处理。