没这样使用过.
一般放在一个对象内.
如下所述.
<?php
abstract class db
{
public $RID; public function db()
{
$this->RID = mysql_connect("localhost", "root", "yourpsw");
mysql_select_db("test");
}
public function query($q)
{
return mysql_query($q, $this->RID);
}
}class a extends db
{
public function __construct()
{
parent::db();
}
public function i()
{
$this->myBegin();
$isSuc = $this->query("insert into a (id,body)values(null,'heihei')");
if(!$isSuc) #可以在这里改变条件来测试rollback是否正常运行;
{
$this->myRollback();
return false;
}
$this->myCommit();
return true;
} public function myRollback()
{ return $this->query("rollback"); }
public function myBegin()
{
return $this->query("begin");
}
public function myCommit()
{
return $this->query("commit");
}
}
$db = new a();
echo $db->i();
?>
再帮你测试下你的想法.
一般放在一个对象内.
如下所述.
<?php
abstract class db
{
public $RID; public function db()
{
$this->RID = mysql_connect("localhost", "root", "yourpsw");
mysql_select_db("test");
}
public function query($q)
{
return mysql_query($q, $this->RID);
}
}class a extends db
{
public function __construct()
{
parent::db();
}
public function i()
{
$this->myBegin();
$isSuc = $this->query("insert into a (id,body)values(null,'heihei')");
if(!$isSuc) #可以在这里改变条件来测试rollback是否正常运行;
{
$this->myRollback();
return false;
}
$this->myCommit();
return true;
} public function myRollback()
{ return $this->query("rollback"); }
public function myBegin()
{
return $this->query("begin");
}
public function myCommit()
{
return $this->query("commit");
}
}
$db = new a();
echo $db->i();
?>
再帮你测试下你的想法.
解决方案 »
- 请问一下为什么我打开wampsever里的phpMyadmin弹出的是无法显示该网页?
- MYSQL语句WHERE部分这样写不对吗?
- 求一个.htaccess的伪静态规则
- 求助:一串加密字符串的解密问题
- 网站做优化,链接地址优化请看内容,区别在哪啦?请高手赐教
- 页面自动刷新(清除缓存)
- 有一MYSQL的小问题,怎么得到指定数据的排行。
- 关于MYSQL库中搜索匹配条件的问题????谢谢!!(急)
- 关于三个帧的session的传递。
- 请问,PHP中如何判断页面是首次刷新?????????
- 上传图片时如何修改图片的名字
- php 怎么才能读取CPU的ID和内存的ID 不要提phpsysinfo,那个我看不懂.最好能直接出ID值来
abstract class db
{
public $RID; public function db()
{
$this->RID = mysql_connect("localhost", "root", "a205a205");
mysql_select_db("test");
}
public function query($q)
{
return mysql_query($q, $this->RID);
}
}
class b extends db
{
public function myRollback()
{ return $this->query("rollback"); }
public function myBegin()
{
return $this->query("begin");
}
public function myCommit()
{
return $this->query("commit");
}
}
class a extends db
{
public function __construct()
{
parent::db();
}
public function i()
{
$bDb = new b();
$bDb->myBegin();
$isSuc = $this->query("insert into a (id,body)values(null,'111111')");
if(!$isSuc) #可以在这里改变条件来测试rollback是否正常运行;
{
$bDb->myRollback();
return false;
}
$bDb->myCommit();# 正常情况下去掉此行则数据插入无效.证明事务正常启动.
return true;
}
}$db = new a();
echo $db->i();
?>
测试是可用的.你的错误在于# 类 b
$this->query("begin");
不应再次启动.
直接回滚即可.
abstract class db
{
public $RID; public function db()
{
$this->RID = mysql_connect("localhost", "root", "123456");
mysql_select_db("test");
}
public function query($q)
{
return mysql_query($q, $this->RID);
}
}
class b extends db
{
public function __construct()
{
parent::db();
}
public function myRollback()
{
return $this->query("rollback"); }
public function myBegin()
{
return $this->query("begin");
}
public function myCommit()
{
return $this->query("commit");
}
public function i()
{
$this->myBegin();
$isSuc = $this->query("insert into a (id,body)values(null,'33')");
if(!$isSuc) #可以在这里改变条件来测试rollback是否正常运行;
{
$this->myRollback();
return false;
}
$this->myCommit();# 正常情况下去掉此行则数据插入无效.证明事务正常启动.
return true;
}
}
class a extends db
{
public function __construct()
{
parent::db();
}
public function i()
{
$bDb = new b();
$bDb->myBegin();
$isSuc = $this->query("insert into a (id,body)values(null,'111111')");
if(!$isSuc) #可以在这里改变条件来测试rollback是否正常运行;
{
$bDb->myRollback();
return false;
}
$bDb->myCommit();# 正常情况下去掉此行则数据插入无效.证明事务正常启动.
return true;
}
}$dba = new a();
$dbb = new b();
//echo $dba->i();
echo $dbb->i();
?>