DB_common::autoCommit()

DB_common::autoCommit() -- 自動コミットの有効/無効を切り替える

概要

mixed autoCommit ([boolean $onoff = FALSE])

説明

自動コミットの有効/無効を切り替えます。

パラメータ

boolean $onoff

自動コミットを有効にする場合に TRUE、無効にする場合に FALSE を指定します。

返り値

integer - 成功した場合に DB_OK、 失敗した場合に DB_Error オブジェクトを返します。

例外・エラー

表 33-1PEAR_Error の値

エラーコードエラーメッセージ原因対応法
すべてのエラーコード  データベース固有のエラー。 PHP マニュアル のデータベース関連の部分を調べ、エラーの原因を判断してください。

注意

この関数は、スタティックにコールする ことはできません。

DBMS として MySQL を使用している場合は、対象テーブルが InnoDB 形式を使用している場合にのみトランザクションが使用できます。

例 33-1autocommit() の使用法


<?php
$db =& DB::connect('ibase(firebird)://user:pw@localhost/path/file');

$db->autoCommit(false);

$db->query('CREATE TABLE blah (a integer)');
$db->query('CREATE TABLE blue (b integer)');
$db->commit();

$db->query('INSERT INTO blah (a) VALUES (11)');
$db->query('INSERT INTO blah (a) VALUES (12)');

$res1 =& $db->query('SELECT a FROM blah');
if (DB::isError($res1)) {
    echo $res1->getMessage() . "\n";
}
$i = 1;
while ($res1->fetchInto($row, DB_FETCHMODE_ORDERED)) {
    echo "データ $row[0] を取得します\n";
    echo "数値 $i を挿入します...\n";
    $res2 =& $db->query("INSERT INTO blue (b) VALUES ($i)");
    if (DB::isError($res2)) {
        echo $res2->getMessage() . "\n";
    }
    $i++;
}
$res1->free();

$db->query('DROP TABLE blah');
$db->query('DROP TABLE blue');
$db->commit();
?>

参照

commit() rollback()