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