db2_rollback
(no version information, might be only in CVS)
db2_rollback --
Rolls back a transaction
説明
bool
db2_rollback ( resource connection )
警告 |
この関数は、
実験的なステータスにあります。これは、この関数の
動作、関数名、ここで書かれていること全てがPHPの将来のバージョンで予告
なく変更される可能性があることを意味します。注意を喚起するとともに自分
のリスクでこの関数を使用してください。 |
Rolls back an in-progress transaction on the specified connection resource and
begins a new transaction. PHP applications normally default to AUTOCOMMIT
mode, so db2_rollback() normally has no effect unless
AUTOCOMMIT has been turned off for the connection resource.
注意:
If the specified connection resource is a persistent connection, all
transactions in progress for all applications using that persistent
connection will be rolled back. For this reason, persistent connections
are not recommended for use in applications that require transactions.
戻り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
例
例 1. Rolling back a DELETE statement
In the following example, we count the number of rows in a table, turn
off AUTOCOMMIT mode on a database connection, delete all of the rows in
the table and return the count of 0 to prove that the
rows have been removed. We then issue db2_rollback()
and return the updated count of rows in the table to show that the number
is the same as before we issued the DELETE statement. The return to the
original state of the table demonstrates that the roll back of the
transaction succeeded.
<?php $conn = db2_connect($database, $user, $password);
if ($conn) { $stmt = db2_exec($conn, "SELECT count(*) FROM animals"); $res = db2_fetch_array( $stmt ); echo $res[0] . "\n"; // Turn AUTOCOMMIT off db2_autocommit($conn, DB2_AUTOCOMMIT_OFF); // Delete all rows from ANIMALS db2_exec($conn, "DELETE FROM animals"); $stmt = db2_exec($conn, "SELECT count(*) FROM animals"); $res = db2_fetch_array( $stmt ); echo $res[0] . "\n"; // Roll back the DELETE statement db2_rollback( $conn ); $stmt = db2_exec( $conn, "SELECT count(*) FROM animals" ); $res = db2_fetch_array( $stmt ); echo $res[0] . "\n"; db2_close($conn); } ?>
|
上の例の出力は以下となります: |