문제

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