作者kattte (诚实面对自己吧!)
看板PHP
标题[请益] 如果料进入资料库的中途出现错误怎麽修复
时间Sat Aug 8 07:39:52 2015
这几天想到一个问题
使用我提供的後台api的对像会先传给我一堆资料
我再藉由传给我的一个status变数的内容执行对应的工作
这些工作里面有很多都是要把资料输入资料库
或先进资料库查出跟使用者相关的资料做处理
有一个功能需要把使用着的身份资料写进两个不同的资料表
比如说 community 这张表里面是记录使用者的通讯资料
另一张表 serviceInfo 是使用者的消费资料(例如累积的红利点数)
所以当一个新的使用者注册时(假如使用者输入的资料都通确检查没有缺失)
step 1 :我会先把他的资料填入community
step 2 :再到serviceInfo里新增他的资料
可是如果我完成step 1 之後莫名其妙的没有把资料加到step 2 里,
这时我该怎麽补救?
我该怎麽去补完step 2 没完成的工作?
或是我该怎麽回头去删掉step 1 已输入的资料?
--
--
▄ ▆ ● ◤ ●
◢ ˙ ˙ ◣ ● ▼◥ ▲●
◆◣ ◤◆ 上吧,蓝胖!!
● ▲●
◥ \◤' (OwQ )
◣ ◣ ◤ ) ) ﹀ \ \
◣
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 115.43.55.22
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1438990796.A.69F.html
1F:推 duck10704: 包 transaction? 08/08 09:08
请问包 transaction的意思是这样吗
mysql_query("SET AUTOCOMMIT=0");
//设置 mysql 不自动执行,需自行用 commit 语句执行
$sql_com = " insert into community values('李某某','0919...',...) ";
$sql_service = " insert into serviceInfo values('100','10','2015...'...) ";
$res_c = mysql_query($sql_com);
$res_s = mysql_query($sql_service);
if($res_c && $res_s){
mysql_query("COMMIT"); //两个都完成 则确定输入资料
}else{
mysql_query("ROLLBACK"); //否则退回原本状态
}
※ 编辑: kattte (115.43.55.22), 08/08/2015 13:00:35
2F:推 crossdunk: 去google看看吧 TRANSACTION 交易 08/08 14:17
3F:→ crossdunk: TRY CATCH 08/08 14:17
4F:→ kattte: 好的 08/08 16:31