事务预处理同时应用
$insert = array(
':name' => $p_name,
':number' => $p_number,
':email' => $p_email,
':money' => $p_money,
':info' => $p_info,
':face' => $p_face
);
$pdo->beginTransaction(); //!开启事务
$sql = "INSERT transfer(name,number,email,money,info,face) value(:name,:number,:email,:money,:info,:face)";
foreach($insert as $key=>$value){
$stmt->bindParam(":name", $p_name);
$stmt->bindParam(":number", $p_number);
$stmt->bindParam(":email", $p_email);
$stmt->bindParam(":money", $p_money);
$stmt->bindParam(":info", $p_info);
$stmt->bindParam(":face", $p_face);
}
$reslut=$stmt->execute($sql);
$r1 =$stmt->rowCount();
if($r1>0 ){ //行数大于0即都执行成功
$pdo->commit(); //!事务提交
echo "操作成功";
}else{
$pdo->rollBack(); //!事务回滚
echo "操作失败";
}
$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,1);
---
事件和预处理是否可同时应用,bindParam 绑定多个参数,能否用foreach这样去设置
正在回答 回答被采纳积分+1
你好,事件和预处理是可以同时应用的,bindParam 绑定 foreach循环绑定具体参考例子如下:
绑定的数据:
$insert=Array( Array ( 'name' => "qaz", 'number'=> 111111, 'email' => "827215772@qq.com" , 'money' => 222, 'info' => 'qwqwqwq', ), Array ( 'name' => "qaz_3", 'number'=> 111113, 'email' => "827215772@qq.com" , 'money' => 2223, 'info' => 'qwqwqwq3', ), ); $pdo=new PDO('mysql:host=localhost;dbname=user_money','root','root'); $pdo->exec('set names utf8'); $stmt = $pdo->prepare("INSERT transfer(name,number,email,money,info) value(:name,:number,:email,:money,:info)"); foreach($insert as $key=>$value){ $stmt->bindParam(":name", $value['name']); $stmt->bindParam(":number", $value['number']); $stmt->bindParam(":email", $value['email']); $stmt->bindParam(":money", $value['money']); $stmt->bindParam(":info", $value['info']); $stmt->execute();//注意提交数据时是二维数组是的循环每循环一次执行一起提交,应写在循环里面 } $r1 =$stmt->rowCount(); if($r1>0 ){ //行数大于0即都执行成功 $pdo->commit(); //!事务提交 echo "操作成功"; }else{ $pdo->rollBack(); //!事务回滚 echo "操作失败"; } $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,1); die();
如果解决您的问题请采纳,祝学习愉快!
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星