奇怪的事情我有一个奇怪的mysql-事情会在这里,它是关于下面的代码:MySQL的 - 用更新和select语句
$res = mysql_query("SELECT * FROM users WHERE group='".$group."'");
if (mysql_num_rows($res)==1) {
$row = mysql_fetch_assoc($res);
$uid = $row['uid'];
$user_update = mysql_query("UPDATE fe_users SET group = 5 WHERE group='".$group."'");
return 'ok';
} else {
return 'not ok';
}
我检查,如果存在与group = $group
用户。如果是,则组更新为5,然后返回字符串“ok”,如果没有group=$group
的用户存在,就可以看到字符串“不好”被返回。
这应该很容易,但现在的问题是,如果有一个用户group=$group
,更新是正确完成的,但不返回“OK”,PHP返回“不好”,就好像更改从上面执行的选择中更新被追溯地考虑在内。我不明白这一点。任何帮助将非常感激。
Thanx提前, 杰登
什么是上下文?这是函数的代码吗?这是ajax响应的代码吗? – alesdario 2012-03-07 19:21:04
这是一个函数,没有ajax,我建立了一个没有参数的场景,但仍然是一样的。如果我从if部分删除更新查询,那么if部分中的所有其他代码都会正确执行,但如果未删除update-query,那么它是执行的if部分中的唯一内容,除了查询else-part被执行。 – jayden 2012-03-08 19:23:36
这很奇怪,因为更新查询在if语句中,而不在else语句中。你能一步步调试你的代码吗?如果没有,请尝试在update-statement之后放置'die('here')'并查看函数是否停止执行。 – alesdario 2012-03-08 20:11:18