测试if语句的无限量布尔值

时间:2011-08-28 00:55:19

标签: php if-statement boolean

我有一个运行一些mysql查询的for语句,但它们并不总是像这样的查询数量相同:

for($i=0;$i<count($phones);$i++){
    $results[$i] = mysql_query("[ACTUAL MYSQL QUERY]");
}

正如您所看到的,我将结果放入数组中,并且我希望使用if语句确保所有查询都成功。我怎么会这样做,我在想eval(),但这似乎不可靠。

2 个答案:

答案 0 :(得分:1)

您可以使用array_filter一次检查整个$ result列表,因为mysql_query会因失败的查询而返回false

if (count($results) == count(array_filter($results))) {
    // all succeeded
}

(我相信你可能遇到问题,如果你保持太多的并发查询句柄打开;它们会占用一些内存。所以也许你应该在循环中立即执行mysql_fetch_assoc,或者只保留一个布尔值,然后释放结果句柄。)

答案 1 :(得分:0)

for循环之前声明一个值为true的布尔变量。然后在循环时,如果任何值为false,则将变量设置为false。如果布尔变量在循环后仍然为真,则查询都是成功的。