PDO操作MSSQL类——尽展专业技能

1. 前言

在开发过程中,我们经常需要连接到数据库并进行数据操作,而PDO是PHP中比较常用的数据库操作扩展。本文将介绍如何使用PDO操作MSSQL数据库。

2. 环境准备

在使用PDO操作MSSQL数据库之前,需要先安装MSSQL PDO扩展以及SQL Server驱动程序。如果使用Windows系统,则需要安装SQL Server Native Client驱动程序,在Linux系统上则需要安装FreeTDS驱动程序。以CentOS系统为例,安装FreeTDS驱动程序的命令如下:

$ yum install freetds freetds-devel

另外,还需要在php.ini文件中启用MSSQL PDO扩展,找到以下两行,去掉前面的分号即可:

;extension=php_pdo_mssql.dll

;extension=php_sqlsrv.dll

3. PDO连接MSSQL

3.1 创建PDO实例

使用PDO连接MSSQL数据库需要指定ODBC数据源名称,然后创建PDO实例,代码如下:

$dsn = 'odbc:Driver=FreeTDS;Server=127.0.0.1;Port=1433;Database=test';

$user = 'username';

$password = 'password';

try {

$pdo = new PDO($dsn, $user, $password);

} catch (PDOException $e) {

die('PDO Connection failed: '.$e->getMessage());

}

以上代码指定了ODBC数据源名称为“test”,服务器IP为“127.0.0.1”,端口号为“1433”,以及数据库的用户名和密码。如果连接失败会抛出PDOException异常。

3.2 设置PDO属性

为了更好的进行数据库操作,我们可以设置PDO的属性,如设定错误模式、获取自增ID的方法等,代码如下:

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 错误模式为抛出异常

$stmt = $pdo->prepare("INSERT INTO users (name, age) VALUES (:name, :age)");

$stmt->execute(array(':name' => 'John', ':age' => 18));

$id = $pdo->lastInsertId(); // 获取自增ID

以上代码指定PDO的错误模式为抛出异常,之后预处理一条INSERT语句,并执行,使用PDO的lastInsertId方法获取自增ID。

4. PDO操作MSSQL数据库

4.1 查询数据

查询MSSQL数据库中的数据,可以使用PDO的query方法执行一个SQL查询,代码如下:

$stmt = $pdo->query("SELECT * FROM users WHERE age >= 18");

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {

echo "name: " . $row['name'] . ", age: " . $row['age'] . "<br />";

}

以上代码使用PDO的query方法执行一条SELECT语句,之后使用fetch方法循环取出每一行数据,并输出名称和年龄。

4.2 插入数据

插入数据可以使用PDO的prepare方法预处理一条INSERT语句,然后执行execute方法,代码如下:

$stmt = $pdo->prepare("INSERT INTO users (name, age) VALUES (:name, :age)");

$stmt->execute(array(':name' => 'John', ':age' => 18));

以上代码预处理一条INSERT语句,之后使用execute方法执行,数组中的键名为占位符,值为要插入的数据。

4.3 更新数据

更新数据可以使用PDO的prepare方法预处理一条UPDATE语句,然后执行execute方法,代码如下:

$stmt = $pdo->prepare("UPDATE users SET age = :age WHERE name = :name");

$stmt->execute(array(':age' => 20, ':name' => 'John'));

以上代码预处理一条UPDATE语句,之后使用execute方法执行,数组中的键名为占位符,值为要更新的数据。

4.4 删除数据

删除数据可以使用PDO的prepare方法预处理一条DELETE语句,然后执行execute方法,代码如下:

$stmt = $pdo->prepare("DELETE FROM users WHERE name = :name");

$stmt->execute(array(':name' => 'John'));

以上代码预处理一条DELETE语句,之后使用execute方法执行,数组中的键名为占位符,值为要删除的数据。

5. 总结

PDO是PHP开发中常用的数据库操作扩展,本文介绍了如何使用PDO操作MSSQL数据库,包括连接数据库、设置PDO属性以及增删改查数据。

数据库标签