我遇到了一个奇怪的问题,但我不明白发生了什么。我创建了一个函数来更新表(用户)中的最多三列(end_plan_date、balance 和服务器),并在另一个表中插入 2 个列。
由于某种原因,我最后一次更新(用户表的列服务器)没有提交($query = mysql_query("UPDATE user SET server='$serv' WHERE email='$subemail'"); ) 除非我至少给出另外两个值之一的值($subamt 或 $subday)。
你知道为什么这个查询没有用我解析的服务器值更新用户表吗?
函数 addBalance($subemail, $subamt,$subday,$userid,$serv) {
$q = "SELECT * FROM user WHERE email = '$subemail'";
$result = mysql_query($q, $this->connection);
$dbarray = mysql_fetch_array($result);
$endplan_date=$dbarray['end_plan_date'];
if($subday >0){
if($endplan_date=="0000-00-00" ){
$endplan_date = date('Y-m-d');
$new_endplan_date = date('Y-m-d',strtotime($endplan_date . "+".$subday." days"));
}else{
$new_endplan_date = date('Y-m-d',strtotime($endplan_date . "+".$subday." days"));
}
$query = mysql_query("UPDATE user SET end_plan_date='$new_endplan_date' WHERE email='$subemail'");
$recdate=gmdate('Y-m-d H:i:s');
$q = "INSERT INTO com_gest(recdate,userid,type,recvalue) VALUES ('$recdate','$userid','Plan Date','$subday')";
mysql_query($q, $this->connection);
}
if($subamt >0){
$query = mysql_query("UPDATE user SET balance=balance+".$subamt." WHERE email='$subemail'");
$recdate=gmdate('Y-m-d H:i:s');
$q = "INSERT INTO com_gest(recdate,userid,type,recvalue) VALUES '$recdate','$userid','Balance','$subamt')";
mysql_query($q, $this->connection);
}
$query = mysql_query("UPDATE user SET server='$serv' WHERE email='$subemail'");
return 0;
最佳答案
在你的代码中你不能直接得到这个
$endplan_date=$dbarray['end_plan_date'];
为了获取这个变量,你必须像使用 while 循环一样
while($dbarray = mysql_fetch_array($result);) {
$endplan_date=$dbarray['end_plan_date'];
}
关于mysql - SQL 更新未提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27209472/