Lithium PHP框架 - 如何在mysql上运行db事务?

时间:2013-08-26 13:03:47

标签: php lithium

我一直在使用PHP Lithium框架中的电子商务网站,实际上这个是从CakePHP升级的,我们必须在mysql中使用db上的事务操作。只是不知道如何在PHP Lithium框架中做db事务。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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
];

使用这些知识,您应该能够设置交易。