2

私は PHP Lithium フレームワークで e コマース Web サイトに取り組んできましたが、実際にはこれは CakePHP からアップグレードされたもので、mysql の db でトランザクション操作を使用する必要があります。PHP Lithium フレームワークで db トランザクションを実行する方法がわかりません。

4

2 に答える 2

5

Lithium は PDO を使用するため、PDO オブジェクトを取得して beginTransaction() メソッドを呼び出すだけです。

$foo = app\models\Foo::create();
$pdo = Connections::get('default')->connection; 
$pdo->beginTransaction();
$foo->bar = 'Hello';
$foo->save();
$pdo->commit();

https://github.com/UnionOfRAD/lithium/issues/1004#issuecomment-23690165 http://www.php.net/manual/en/pdo.begintransaction.php

于 2013-09-03T23:14:50.450 に答える
0

残念ながらサポートされていないようです。Lithium/data/source/database/adapter/MySql.phpのソースを参照してください。

別の方法として、クエリを手動で実行することもできます。

モデル内で、次のことができます。

static::connection->read($sql, $placeholders);

$sql生のSQLはどこにありますか:

$sql = 'SELECT * FROM users WHERE id = {:id}';

および$placeholders(オプション) はプレースホルダーです。

$placeholders = [
    'id' => 5
];

その知識を使用して、トランザクションを設定できるはずです。

于 2013-08-26T19:47:04.413 に答える