0

想不出来这个:

$try1 = mysql_query("UPDATE com_users SET `choice_one` = 'president'");
$try2 = mysql_query("UPDATE com_users SET `choice_two` = 'president'");

echo mysql_error($try1);
echo mysql_error($try2);

该 PHP 代码没有回显任何内容并正确更改了choice_two,而不更改choice_one。

$try2 = mysql_query("UPDATE com_users SET `choice_two` = 'president'");
$try1 = mysql_query("UPDATE com_users SET `choice_one` = 'president'");

echo mysql_error($try1);
echo mysql_error($try2);

该 PHP 代码没有回显任何内容并正确更改了choice_one,而没有更改choice_two。

这些更新命令的顺序怎么可能导致一个根本不工作?

4

1 回答 1

2

查询的顺序无关紧要。如果您没有显示其他代码,请发布...

mysql_error()的第一个参数不是结果资源,而是连接资源。所以要得到第一个错误,你需要在第一个查询之后立即调用它。

$try1 = mysql_query("UPDATE com_users SET `choice_one` = 'president'");
// Call with no parameter right after the query it relates to.
echo mysql_error();

$try2 = mysql_query("UPDATE com_users SET `choice_two` = 'president'");
echo mysql_error();

请注意,您没有使用WHERE子句,所有行都将在第一次更新。第二次尝试运行这些查询(除非您已重置数据),将没有需要更新的行并且查询将无效(mysql_affected_rows() == 0)。

于 2012-07-27T00:40:09.647 回答