12

PHPでsqlite3ドライバーでトランザクション(およびロールバック)を使用することは可能ですか? ここに情報が見つかりませんでした:http://de2.php.net/manual/en/book.sqlite3.php

PDOを使いたくない...

ご協力いただきありがとうございます

4

3 に答える 3

27

はい、PDO がなくてもトランザクションとロールバックは可能です。これを達成する方法を説明する例を見つけるのがいかに難しいかは驚くべきことです。実際にいくつかの準備が整ったコードを掘り下げて調べる必要がありました。

$db=new MyDB("database.db", SQLITE3_OPEN_READWRITE);

$db->exec('BEGIN;');

$stmt=$db->prepare('UPDATE table SET name = :name WHERE id = :id');
$stmt->bindValue(':id', $id, SQLITE3_INTEGER);
$stmt->bindValue(':name', $name, SQLITE3_TEXT);
$stmt->execute();

$db->exec('COMMIT;');

ロジックのソース: sombra2eternity、「MyDB」のソース: php.net

于 2015-06-30T12:19:02.327 に答える
7

適切なSQL コマンドを実行するだけです: BEGIN/COMMIT/ROLLBACK

于 2013-08-15T19:39:46.330 に答える