我一直在使用PHP Lithium框架中的电子商务网站,实际上这个是从CakePHP升级的,我们必须在mysql中使用db上的事务操作。只是不知道如何在PHP Lithium框架中做db事务。
答案 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
];
使用这些知识,您应该能够设置交易。