用PHP连接MSSQL数据库:轻松搞定!

介绍

Microsoft SQL Server 是一种关系型数据库管理系统,它与 PHP 一起是构建动态 Web 应用程序的一种可靠和流行的选择。在本文中,我们将介绍如何使用 PHP 来连接到 MSSQL 数据库。

安装

要使用 PHP 连接 MSSQL 数据库,必须确保已安装 SQL Server 驱动程序。 如果您尚未安装它,请按照以下步骤安装 Microsoft SQL Server 驱动程序

连接MSSQL数据库

要在 PHP 中连接到 MSSQL 数据库,必须使用 sqlsrv_connect() 函数。

// 连接数据库的配置信息

$server = "localhost";

$username = "sa";

$password = "123456";

$database = "test_db";

// 连接数据库

$conn = sqlsrv_connect($server, array(

"UID" => $username,

"PWD" => $password,

"Database" => $database,

"CharacterSet" => "UTF-8"

));

if ($conn) {

echo "连接成功";

} else {

echo "连接失败";

}

sqlsrv_connect()函数的第一个参数指定要连接到的 SQL Server 的名称或 IP 地址。第二个参数包含与数据库连接相关的选项的数组。 这个函数将返回成功(非零)或失败(0)的值。

执行 SQL 查询

在连接到 MSSQL 数据库之后,我们可以使用 sqlsrv_query() 函数执行 SQL 查询。

// 连接数据库的配置信息

$server = "localhost";

$username = "sa";

$password = "123456";

$database = "test_db";

// 连接数据库

$conn = sqlsrv_connect($server, array(

"UID" => $username,

"PWD" => $password,

"Database" => $database,

"CharacterSet" => "UTF-8"

));

// 检查是否成功连接

if (!$conn) {

die("连接失败" . sqlsrv_errors());

}

// 执行查询

$sql = "SELECT * FROM users";

$query = sqlsrv_query($conn, $sql);

if ($query === false) {

die("查询失败" . sqlsrv_errors());

}

// 处理查询结果

while ($row = sqlsrv_fetch_array($query)) {

echo $row['name']."
";

}

// 释放查询结果

sqlsrv_free_stmt($query);

// 关闭数据库连接

sqlsrv_close($conn);

在上面的示例中,我们首先连接到 MSSQL 数据库。 然后,我们定义了一个 SQL 查询,该查询将检索来自“users”表的所有行。最后,我们使用 sqlsrv_fetch_array() 函数从查询结果集中检索行并将它们打印到屏幕上。

绑定查询参数

要执行带有参数的 SQL 查询,必须将这些参数绑定到查询中。 可以使用 sqlsrv_bind_param() 函数将参数绑定到查询中。

// 连接数据库的配置信息

$server = "localhost";

$username = "sa";

$password = "123456";

$database = "test_db";

// 连接数据库

$conn = sqlsrv_connect($server, array(

"UID" => $username,

"PWD" => $password,

"Database" => $database,

"CharacterSet" => "UTF-8"

));

// 检查是否成功连接

if (!$conn) {

die("连接失败" . sqlsrv_errors());

}

// 准备查询

$sql = "SELECT * FROM users WHERE name = ?";

$params = array("John");

// 绑定参数

$stmt = sqlsrv_query($conn, $sql, $params);

if ($stmt === false) {

die("查询失败" . sqlsrv_errors());

}

// 处理查询结果

while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {

echo $row['name']."
";

}

// 释放查询结果

sqlsrv_free_stmt($stmt);

// 关闭数据库连接

sqlsrv_close($conn);

在上面的示例中,我们使用 ? 占位符代替查询中的参数。我们还定义了一个名为 $params 的数组,该数组包含要绑定到查询的参数的值。 对于这个例子,我们只查询名字为 John 的用户。

处理事务

在执行多个 SQL 查询时,有时需要确保所有查询成功才进行提交。这需要使用事务。 在 PHP 中,可以使用 sqlsrv_begin_transaction()、sqlsrv_commit() 和 sqlsrv_rollback() 函数处理事务。

// 连接数据库的配置信息

$server = "localhost";

$username = "sa";

$password = "123456";

$database = "test_db";

// 连接数据库

$conn = sqlsrv_connect($server, array(

"UID" => $username,

"PWD" => $password,

"Database" => $database,

"CharacterSet" => "UTF-8"

));

// 检查是否成功连接

if (!$conn) {

die("连接失败" . sqlsrv_errors());

}

// 开始事务

sqlsrv_begin_transaction($conn);

// 执行查询

$sql1 = "INSERT INTO users (name) VALUES ('John')";

$stmt1 = sqlsrv_query($conn, $sql1);

$sql2 = "INSERT INTO orders (user_id, total) VALUES (?,?)";

$params = array(1, 100);

$stmt2 = sqlsrv_query($conn, $sql2, $params);

// 检查是否全部成功

if ($stmt1 && $stmt2) {

// 提交事务

sqlsrv_commit($conn);

echo "事务已提交";

} else {

sqlsrv_rollback($conn);

echo "事务已回滚";

}

// 关闭数据库连接

sqlsrv_close($conn);

在上面的示例中,我们首先使用 sqlsrv_begin_transaction() 函数开始事务。然后,我们定义了两个 SQL 查询,其中第二个查询需要一个包含值 1 和 100 的参数数组。 如果查询全部成功,则使用 sqlsrv_commit() 函数提交事务。 否则,我们使用 sqlsrv_rollback() 函数回滚事务。

总结

在本文中,我们讨论了如何使用 PHP 连接到 MSSQL 数据库。 我们介绍了连接到数据库、执行 SQL 查询、绑定查询参数以及处理事务等相关概念。

数据库标签