u010861037 2014-12-09 09:12
浏览 538

mysqli中执行多条语句同时事物处理

<?php
$mysqli=new mysqli("localhost","root","root","bookstore");
if($mysqli->connect_error){
echo "link bookstore database fail:".$mysqli->connect_error;
}
// $mysqli->autocommit(0);
$sqls="create table zh(id int auto_increment primary key,name varchar(60) not null default '',ye double not null default'0.00')type=InnoDB;";
$sqls="insert into zh(id,name,ye)values('1','zhangsan','2000');";
$sqls.="insert into zh (name,ye) values('lisi',3000);";
if($result=$mysqli->multi_query($sqls)){
echo "zh database operation success"."
";
echo $mysqli->affected_rows."
";
}else{
echo "database link fail:".$mysqli->errno."fail error:".$mysqli->error."
";
}
// $mysqli=new mysqli("localhost","root","root","bookstore");
$mysqli->autocommit(0);
$error=true;
$price=50;
$sql="update zh set ye=ye-{$price} where name='zhangsan'";
$results=$mysqli->query($sql);
if(!$results){
$error=false;
echo"zhangsan transfer failed"."
";
}else{
echo $mysqli->affected_rows."
";
if($mysqli->affected_rows==0){
$error=false;
echo "zhangsan money not have change"."
";
}else{
echo "zhangsan money transfer out success"."
";
}
}
$sql="update zh set ye=ye+{$price} where name='lisi'";
$results=$mysqli->query($sql);
if(!$results){
$error=false;
echo "transfer money failed for lisi"."
";
}else{
echo $mysqli->affected_rows."
";
if($mysqli->affected_rows==0){
$error=false;
echo "lisi money has not change"."
";
}else{
echo "lisi money transfer into success"."
";
}
}
if($error){
echo "transfer success"."
";
$mysqli->commit();
}else{
echo "transfer failed"."
";
$mysqli->rollback();
}
$mysqli->autocommit(1);
$mysqli->close();

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 yolov7训练自己的数据集
    • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
    • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
    • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
    • ¥20 matlab yalmip kkt 双层优化问题
    • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
    • ¥88 实在没有想法,需要个思路
    • ¥15 MATLAB报错输入参数太多
    • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
    • ¥15 有赏,i卡绘世画不出