質問

I have been working on an e-commerce website in PHP Lithium framework, actually this one is upgraded from CakePHP, we have to use transaction operation on db in mysql. Just don't know how to do db transaction in PHP Lithium framework.

役に立ちましたか?

解決

Since Lithium uses PDO, you can just get the PDO object and call the beginTransaction() method.

$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

他のヒント

It doesn't seem like it is supported, unfortunately. See source of lithium/data/source/database/adapter/MySql.php.

An alternative may be to manually execute your queries.

Within your model, you can do:

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

Where $sql is your raw SQL like:

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

and $placeholders (optional) are your placeholders:

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

Using that knowledge, you should be able to set up a transaction.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top