测试 if 语句的不确定量的布尔值

发布于 2024-12-01 18:30:13 字数 239 浏览 1 评论 0原文

我有一个 for 语句,它运行一些 mysql 查询,但它们不会总是相同数量的查询,如下所示:

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

如您所见,我将结果放入一个数组中,并且我想使用if 语句。我该怎么做,我在想 eval() ,但这似乎不可靠。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

热情消退 2024-12-08 18:30:13

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

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

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

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.)

失去的东西太少 2024-12-08 18:30:13

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文