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

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

问题描述:

I have a for statement that runs a few mysql querys but they wont always be the same number of querys like this:

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

As you can see I put the result into an array, and I want to make sure all of the queries were successful using an if statement. How would I do that, I was thinking eval() but that doesn't seem reliable.

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

  for($ i = 0; $ i&lt; count($ phones); $ i ++){
 $ results [$ i] = mysql_query(“[ACTUAL MYSQL QUERY  ]“); 
} 
  code>  pre> 
 
 

正如您所看到的,我将结果放入数组中,并且我想确保所有查询都成功使用了 如果声明。 我怎么做,我在想 eval() code>,但这似乎不可靠。 p> div>

You can use array_filter to check the whole $result list at once, because mysql_query will return false for failed queries.

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

(I believe you might however run into problems if you keep too many concurrent query handles open; they consume some memory. So maybe you should rather do an immediate mysql_fetch_assoc in your loop, or just keep a boolean, then free the result handles.)

Before the for loop declare a boolean variable that has the value of true. Then as you loop through, if any of the values are false set the variable to false. The queries were all successful if the boolean variable is still true after the loop.