PHP 的事务怎么写? 我现在是一条update,一条insert
代码如下,错误是,值类型发生了错误,事务没起作用.$db = new DbManager();
$conn = $db->getConnection();
$conn->set_charset("utf8");
if(mysqli_connect_errno())
{
echo 'error connect database! please content manager!';
exit;
}
//echo connection_status();
$tbNums = explode(',',$tbNum);
$conn->autocommit(FALSE);
$flag = true;
$a=0;
foreach($tbNums as $key => $value)
{
$updateBalance = "UPDATE T_SMS_TBNUM SET STATUS = 2 WHERE ID = ?";
$insertRelate = "INSERT INTO T_SMS_TBNUMRELATE (TBID,OWNCLIENTID,REALFEE,CREATETIME) VALUES(?,?,?,?)";
$stmtUpdateClient = $conn->prepare($updateBalance);
$stmtUpdateClient->bind_param('i',$value);
$ss = $stmtUpdateClient->execute();
$stmt = $conn->prepare($insertRelate);
$foura = 4;
$a++;
if($a!=0){
$value = 's';
}
$stmt->bind_param('iids',$value,$clientId,$foura,date('Y-m-d H:i:s'));
$boooo = $stmt->execute();
echo $ss.'+'.$boooo;
if($stmtUpdateClient->affected_rows <= 0 || $stmt->affected_rows <= 0)
{
echo $stmtUpdateClient->affected_rows.'|'.$stmt->affected_rows;
$flag = false;
break;
}
}
if(!$flag)
{
$conn ->rollback();
$conn -> autocommit(TRUE);
$conn->close();
return 'paylog false!';
}else
{
$conn->commit();
$conn -> autocommit(TRUE);
$conn->close();
return '1';
}
代码如下,错误是,值类型发生了错误,事务没起作用.$db = new DbManager();
$conn = $db->getConnection();
$conn->set_charset("utf8");
if(mysqli_connect_errno())
{
echo 'error connect database! please content manager!';
exit;
}
//echo connection_status();
$tbNums = explode(',',$tbNum);
$conn->autocommit(FALSE);
$flag = true;
$a=0;
foreach($tbNums as $key => $value)
{
$updateBalance = "UPDATE T_SMS_TBNUM SET STATUS = 2 WHERE ID = ?";
$insertRelate = "INSERT INTO T_SMS_TBNUMRELATE (TBID,OWNCLIENTID,REALFEE,CREATETIME) VALUES(?,?,?,?)";
$stmtUpdateClient = $conn->prepare($updateBalance);
$stmtUpdateClient->bind_param('i',$value);
$ss = $stmtUpdateClient->execute();
$stmt = $conn->prepare($insertRelate);
$foura = 4;
$a++;
if($a!=0){
$value = 's';
}
$stmt->bind_param('iids',$value,$clientId,$foura,date('Y-m-d H:i:s'));
$boooo = $stmt->execute();
echo $ss.'+'.$boooo;
if($stmtUpdateClient->affected_rows <= 0 || $stmt->affected_rows <= 0)
{
echo $stmtUpdateClient->affected_rows.'|'.$stmt->affected_rows;
$flag = false;
break;
}
}
if(!$flag)
{
$conn ->rollback();
$conn -> autocommit(TRUE);
$conn->close();
return 'paylog false!';
}else
{
$conn->commit();
$conn -> autocommit(TRUE);
$conn->close();
return '1';
}
解决方案 »
- 在数据库里记录时间,是用datatime好还是用时间戳好?
- 【求助】php+jmail的乱码和换行问题
- FF3.0的javascript问题【JavaScript版得不到答案】
- xampp无法启动apache
- 关于这段代码提示的错误
- 请大家给分析一下,关于这个网站:http://www.mnrc.com.cn
- 一个愚蠢的问题什么是session,session能干什么用,详细些好吗
- php通过CURL的方式读取并输出图片乱码
- php 与 sap 接口通信问题
- 求大佬们帮助。。。这是错误导致的?生成文件过程中,apache假停显示apache已停止工作,apache错误日志如下
- left 菜单只在只在left菜单下跳转
- PHP搜索页面如何实现分类检索?
{
$conn ->rollback();
$conn -> autocommit(TRUE);
$conn->close();
return 'unknow_error';
}else
{
$conn->commit();
$conn -> autocommit(TRUE);
$conn->close();
return '1';
}