首页 > 解决方案 > foreach 循环执行一次或执行每一轮

问题描述

我有一个 php 代码。

foreach($db->exec("SELECT * FROM users") as $k => $v) {
   # code ...
}

我想知道在foreach循环中,每一轮执行$db->exec("SELECT * FROM users")代码,还是执行一次并在每一轮中使用它?

如果我的英语不好,我很抱歉:(

标签: phpmysqlsql

解决方案


您的代码就像这样运行,运行一次查询,然后处理结果集中的每一行。

$resultset = $db->exec("SELECT * FROM users");
foreach ( $resultset as $k => $v ) {
   # code ...
}

但是,当心。您应该始终检查来自外部操作(如 DBMS 查询)的错误。您编写代码的方式使这变得困难。这是检查错误并在有任何错误时停止程序的粗略方法

$resultset = $db->exec("SELECT * FROM users");
if (!$resultset) {
    print_r($db->errorInfo());
    die "sql error";
} 
else {
    foreach ( $resultset as $k => $v ) {
       # code ...
    }
}

如果您正在创建生产质量的代码,您需要找出比我展示的更好的处理错误的方法:我所拥有的对您的用户来说是粗鲁的,更不用说向网络爬虫提供太多信息了。


推荐阅读