Mysql Query里面有一个php变量

时间:2011-03-29 18:40:38

标签: php mysql

在我的工作场所,我们遇到某个领域的问题。我们需要不时地从邮件列表中暂停某人,为此,我们只需更新他们的记录以使暂停字段= Y.

在phpMyAdmin中没有问题,但是当我们为人员使用crud页面时,有时它无法更新,留下Suspend = N的值。看完代码后,我想知道以下行是否可以成为问题的根源。

$rs = mysql_query($sql, $conn) or die("Query has Failed : $sql");

在它看起来不错之前的所有其他内容,它是脚本中的最后一行。现在,我认为这不应该奏效,但确实如此。这将运行查询。我认为它只会在

的情况下起作用
mysql_query($sql, $conn) or die("Query has Failed : $sql");

但它似乎在大多数情况下都能正常工作。只有时不时它都不起作用。这可能是问题的原因吗?最后一点信息,我们使用MyIsam作为引擎。

我很感激你能给予的任何帮助!

1 个答案:

答案 0 :(得分:0)

mysql_query将返回一个值,无论您是否将该返回值分配给变量。通过PHP的运算符优先级规则,第一个语句被视为:

$rs = (
     (mysql_query($sql, $conn))
     or
     (die("Query has Failed..."))
);

查询是什么样的?请记住,即使查询未能按预期执行操作,mysql_query也可以返回“成功”状态。例如UPDATE ... SET ... WHERE (somefield = value_that_doesnt_exist);。查询没有按照您的意愿执行,但也没有失效,因此mysql_query不会返回FALSE并且不会触发or die(...)