是的,PHP PostgreSQL 支持事务处理。事务是一组原子性的 SQL 查询,要么全部执行成功,要么全部失败回滚。在 PHP 中,可以使用 pg_query() 或 pg_prepare() 和 pg_execute() 函数来执行事务处理。
以下是一个简单的 PHP PostgreSQL 事务处理示例:
<?php
// 连接到 PostgreSQL 数据库
$dbconn = pg_connect("host=localhost dbname=mydb user=myuser password=mypassword");
if (!$dbconn) {
die("Connection to PostgreSQL failed: " . pg_last_error());
}
// 开始事务处理
pg_begin($dbconn);
try {
// 执行 SQL 查询
$result1 = pg_query($dbconn, "SELECT * FROM table1 WHERE id=1");
if (!$result1) {
throw new Exception("Error executing query 1: " . pg_last_error());
}
$result2 = pg_query($dbconn, "UPDATE table2 SET value='new_value' WHERE id=1");
if (!$result2) {
throw new Exception("Error executing query 2: " . pg_last_error());
}
// 提交事务处理
pg_commit($dbconn);
} catch (Exception $e) {
// 发生错误时回滚事务处理
echo "Transaction failed: " . $e->getMessage();
pg_rollback($dbconn);
} finally {
// 关闭数据库连接
pg_close($dbconn);
}
?>
在这个示例中,我们首先连接到 PostgreSQL 数据库,然后开始事务处理。接下来,我们执行两个 SQL 查询,一个从表 table1 中获取数据,另一个更新表 table2 中的数据。如果所有查询都成功执行,我们将提交事务处理;如果有任何查询失败,我们将捕获异常并回滚事务处理。最后,我们关闭数据库连接。