Exemplo n.º 1
0
<?php

// Open a new Db4Env
$dbenv = new Db4Env();
$dbenv->set_data_dir("/var/tmp/dbhome");
$dbenv->open("/var/tmp/dbhome");
// Open a database in $dbenv.  Note that even though
// we pass null in as the transaction, db4 forces this
// operation to be transactionally protected, so PHP
// will force auto-commit internally.
$db = new Db4($dbenv);
$db->open(null, 'a', 'foo');
$counter = $db->get("counter");
// Create a new transaction
$txn = $dbenv->txn_begin();
if ($txn == false) {
    print "txn_begin failed";
    exit;
}
print "Current value of counter is {$counter}\n";
// Increment and reset counter, protect it with $txn
$db->put("counter", $counter + 1, $txn);
// Commit the transaction, otherwise the above put() will rollback.
$txn->commit();
// Sync for good measure
$db->sync();
// This isn't a real close, use _close() for that.
$db->close();
Exemplo n.º 2
0
<?php

// Open a new Db4Env.  By default it is transactional.  The directory
// path in the open() call must exist.
$dbenv = new Db4Env();
$dbenv->set_data_dir(".");
$dbenv->open(".");
// Open a database in $dbenv.
$db = new Db4($dbenv);
$txn = $dbenv->txn_begin();
$db->open($txn, 'a', 'foo');
$txn->commit();
$counter = $db->get("counter");
// Create a new transaction
$txn = $dbenv->txn_begin();
if ($txn == false) {
    print "txn_begin failed";
    exit;
}
print "Current value of counter is {$counter}\n";
// Increment and reset counter, protect it with $txn
$db->put("counter", $counter + 1, $txn);
// Commit the transaction, otherwise the above put() will rollback.
$txn->commit();
// Sync for good measure
$db->sync();
// This isn't a real close, use _close() for that.
$db->close();