我有一个运行一些mysql查询的for语句,但它们并不总是像这样的查询数量相同:
for($i=0;$i<count($phones);$i++){
$results[$i] = mysql_query("[ACTUAL MYSQL QUERY]");
}
正如您所看到的,我将结果放入数组中,并且我希望使用if语句确保所有查询都成功。我怎么会这样做,我在想eval()
,但这似乎不可靠。
答案 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。如果布尔变量在循环后仍然为真,则查询都是成功的。