#1 zhijiangch
一、事务情况如果对单个表执行修改,删除操作可以:
$tb = spClass("table");
$tb->query("START TRANSACTION");
//简写
$tb->update();
$tb->delete();
if(true){
$tb->query("COMMIT");
}else{
$tb->query("ROLLBACK");
}
那么多表的情况该怎么写,随便实例化一个表吗?还是下面的情况
mysql_query("START TRANSACTION");
$tb1 = spClass("table1");
...... //$tb1的操作
$tb2 = spClass("table2");
......
$tb3 = spClass("table3");
......
if(true)){
mysql_query("COMMIT");
}else{
mysql_query("ROLLBACK");
}
如果随便实例话一个表即可操作,这里面就需要规范一下。要不需要重新创建形如mDB的model,这个类可以操作所有的表,只是在操作时传一个表的值,初始化:
$db = new mDB()
$db->query("START TRANSACTION");
$db->find($table1,$condtions);
$db->find($table2,$condtions);
$db->findAll($table3,$condtions);
这样看着是不是更规范。
在手册第六部分 数据模型 2.使用SQL一节中,对findSql的介绍很有趣
$obj->finSql(...);
$obj用的好,避开了问题,怎么来的没有说明
类似的问题还包括findSql,runSql等函数
2015-10-26 21:05:22