介绍
PHP Data Objects (PDO) 是一个在 PHP 程序中操作数据库的轻量级、灵活的方式。它为许多数据库提供了一个统一的接口,并且支持预处理语句、数据绑定和多个结果集。
在下面的文章中,我们将介绍如何使用 PDO 来连接 Microsoft SQL Server (MSSQL) 的数据库服务器。
安装PDO驱动和MSSQL驱动
在连接到 MSSQL 数据库之前,我们需要安装必要的驱动程序。我们首先需要安装 PDO 驱动程序。我们可以在终端中运行以下命令来安装:
sudo apt-get install php7.2-pdo
接下来,我们需要安装 MSSQL 驱动程序。为了实现这一点,我们需要使用构建代码库。在终端中运行以下命令,以下载并安装 MSSQL 驱动程序:
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql17
sudo apt-get install unixodbc-dev
sudo pecl install sqlsrv
sudo pecl install pdo_sqlsrv
随着此过程的结束,您现在已经安装了 PDO 和 MSSQL 驱动程序,可以开始与 MSSQL 数据库进行连接。
连接到MSSQL数据库
在此过程中,我们要使用 PDO 对 MSSQL 数据库进行连接。我们将使用如下格式的 DSN 进行连接:
$dsn = 'sqlsrv:Server=服务器地址;Database=数据库名';
使用此 DSN,我们会将服务器地址和数据库名称传递给 PDO 对象的构造函数。接下来,我们需要指定用户名和密码,以便 PDO 可以使用这些凭据来连接到 MSSQL 数据库服务器。这些凭据可以在 MSSQL 服务器上的目标数据库中配置。
请注意,这里要使用 SQL Server 身份验证来验证用户凭据。这意味着我们需要向 PDO 对象传递包含用户名和密码的数组。以下是连接到 MSSQL 数据库的完整代码:
$dsn = 'sqlsrv:Server=服务器地址;Database=数据库名';
$username = '用户名';
$password = '密码';
try {
$conn = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
echo 'Error: ' . $e->getMessage();
}
上述代码将对 MSSQL 数据库进行连接并将 PDO 对象存储在 $conn 变量中。如果连接成功,则此变量将包含对 MSSQL 数据库的有效连接。
执行查询
准备查询
要在 MSSQL 数据库中执行查询,我们需要构造一个 SQL 查询字符串并使用 PDO 预处理语句来准备查询。以下是一些用于构建 SQL 查询字符串的示例代码:
$sql = 'SELECT * FROM 表名 WHERE 字段名=:字段值';
$stmt = $conn->prepare($sql);
$stmt->bindParam(':字段值', $字段值);
在上面的代码中,我们使用了一个简单的 SELECT 查询并使用预处理语句来准备查询。通过使用 PDO 预处理语句,我们可以更轻松地执行安全的查询。
预处理语句中的字段值使用了一个占位符并在 bindParam() 方法中绑定了一个值。PDO 将使用此占位符来执行查询并且会正确地处理变量中的任何特殊字符。
执行查询
完成预处理语句之后,我们可以通过调用 execute() 方法来执行查询。如果查询返回结果集,则可以使用 fetch() 或 fetchAll() 方法来遍历结果集。
以下是运行 MSSQL 查询的示例代码:
$stmt->execute();
while ($row = $stmt->fetch()) {
echo $row['列名'];
}
在上述代码中,我们使用了 while 循环来遍历结果集。每次循环时,我们调用 fetch() 方法来检索下一行数据。
在此过程中,我们可以使用 $row 数组来访问结果集中的每一列数据。通过使用适当的列名,我们可以访问每个列并在浏览器中输出其值。
关闭连接
与任何数据库一样,当与 MSSQL 数据库的连接结束时,我们需要关闭连接。为了实现这一点,我们可以简单地调用 PDO 对象的 closeCursor() 方法:
$conn = null;
上述代码将关闭 MSSQL 数据库连接并删除 $conn 变量中的 PDO 对象。
结论
使用 PDO 和 PHP 与 Microsoft SQL Server 进行交互是一件非常简单的事情。通过按照本文所述的指南,您可以立即开始编写 PHP 应用程序并与 MSSQL 数据库服务器进行交互。