大佬教程收集整理的这篇文章主要介绍了php – MYSQLI新查询在一段时间内获取,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想执行一个组任务,组中的任何成员都可以启动它.
该集团的所有人都将获得相同的黄金,经验
并分享同样的冷却时间.
我的数据库中有3个表(我只会显示重要信息)
我想在组中更新last_quest_started和quest_cooldown,我想更新每个成员他/她的级别,经验,playergold
因此,在获得组成员的每个用户名后,任务数据,计算经验和金币.我用它来更新:
if($SELEct_members_info_stmt = $mysqli->prepare("SELECT members.username,members.level,members.experience,members.playergold,levels.required_experience FROM members INNER JOIN levels ON members.level = levels.level WHERE ((members.username = ?) OR (members.username = ?) OR (members.username = ?) OR(members.username = ?))")) { $SELEct_members_info_stmt->bind_param('ssss',$leader,$member_1,$member_2,$member_3); $SELEct_members_info_stmt->execute(); $SELEct_members_info_stmt->bind_result($SELEcted_username,$level,$experience,$playergold,$required_experiencE); while($SELEct_members_info_stmt->fetch()) { $now = time(); if($update_user_stats_stmt = $mysqli->prepare("updatE members SET level = ?,experience = ?,playergold = ? WHERE username = ?")) { $update_user_stats_stmt->bind_param('iiiiis',$new_level,$new_experience,$new_gold,$now,$cooldown,$SELEcted_userName); $update_user_stats_stmt->execute(); if($update_user_stats_stmt->affected_rows == 0) { echo '<div>Because of a system error it is impossible to perform a task,we apologize for this inconvience. Try again later.</div>'; } $update_user_stats_stmt->close(); } else { printf("update user stats error: %s<br />",$mysqli->error); } } $SELEct_members_info_stmt->close(); echo '<div>'.$success_message.'</div><br />'; } else { printf("SELEct members info error: %s<br />",$mysqli_error); }
但我一直在:
更新用户统计信息错误:命令不同步;你现在不能运行这个命令(4次,这是我的团队满员时的大小.)
我只是找不到解决方法来解决不同步错误,因为我无法关闭$SELEct_members_info_stmt,因为它会停止提取.
请帮帮我,因为我真的不知道该怎么做.
最好的解决方案是将成员列表折叠成一个数组(),关闭连接,然后迭代该数组并更新每个记录.
它应该如下所示:
$SELEct_members_info_stmt->bind_param('ssss',$member_3); $SELEct_members_info_stmt->execute(); $SELEct_members_info_stmt->bind_result($SELEcted_username,$required_experiencE); $members = array(); while($SELEct_members_info_stmt->fetch()) { // tossing into the array $members[] = array( 'SELEcted_username' =>$SELEcted_username,'level' => $level,'experience' => $experience,'playergold' => $playergold,'required_experience' => $required_experience ); } $SELEct_members_info_stmt->close(); // Now iterate through the array and update the user stats foreach ($members as $m) { if($update_user_stats_stmt = $mysqli->prepare("updatE members SET level = ?,playergold = ? WHERE username = ?")) { // Note that you need to use $m['SELEcted_username'] here. $update_user_stats_stmt->bind_param('iiiiis',$m['SELEcted_username']); $update_user_stats_stmt->execute(); if($update_user_stats_stmt->affected_rows == 0) { echo '<div>Because of a system error it is impossible to perform a task,we apologize for this inconvience. Try again later.</div>'; } $update_user_stats_stmt->close(); } else { printf("update user stats error: %s<br />",$mysqli->error); } }
以上是大佬教程为你收集整理的php – MYSQLI新查询在一段时间内获取全部内容,希望文章能够帮你解决php – MYSQLI新查询在一段时间内获取所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。