mysql 事物成功了 提交数据 错误了 回滚数据 今天给大家两种方法 让大家理解一下 一种是mysql一种mysqli
$handler=mysql_connect("localhost","root","dgj99349");
mysql_select_db("xiaowei");
mysql_query("SET AUTOCOMMIT=0");//设置为不自动提交,因为MYSQL默认立即执行
mysql_query("BEGIN");//开始事务定义
if(!mysql_query("insert into trans (id) values('2')"))
{
mysql_query("ROOLBACK");//判断当执行失败时回滚
}
if(!mysql_query("insert into trans (id) values('4')"))
{
mysql_query("ROOLBACK");//判断执行失败回滚
}
mysql_query("COMMIT");//执行事务
mysql_close($handler);
</pre>
下边是mysqli事物处理 我们按照一个实验完成
<pre lang="php" line="1">
$mysqli=new mysqli("localhost", "root", "123456", "xiaowei");
//事务处理
$mysqli->autocommit(0);
$error=true;
$price=50;
$sql="update zh set ye=ye-{$price} where name='zhangsan'";
$result=$mysqli->query($sql);
if(!$result){
$error=false;
echo "从张三转出失败<br>";
}else{
if($mysqli->affected_rows==0){
$error=false;
echo "张三的钱没有变化";
}else{
echo "从张三账号中转出成功!<br>";
}
}
$sql="update zh set ye=ye+{$price} where name='lisi1'";
$result=$mysqli->query($sql);
if(!$result){
$error=false;
echo "从李四转入失败<br>";
}else{
if($mysqli->affected_rows==0){
$error=false;
echo "李四的钱没有变化";
}else{
echo "向李四账号中转入成功!<br>";
}
}
if($error){
echo "转账成功!";
$mysqli->commit();
}else{
echo "转账失败!";
$mysqli->rollback();
}
$mysqli->autocommit(1);
$mysqli->close();
欢迎转载,转载请注明来自微度网络http://yun.widuu.com

发表评论 取消回复