Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何批处理pdo循环_Php_Mysql_Pdo - Fatal编程技术网

Php 如何批处理pdo循环

Php 如何批处理pdo循环,php,mysql,pdo,Php,Mysql,Pdo,我完全不知道该怎么做。我想对每批100个mysql结果执行一个函数 $stmt=$db->prepare("SELECT count(user) AS cnt, user FROM table"); $stmt->execute(); $row = $stmt->fetchAll(); foreach ($row AS $row) { $user .= $row['user']; } function($user); 问题是我不知道如何每100次停止循环,执行函数,

我完全不知道该怎么做。我想对每批100个mysql结果执行一个函数

$stmt=$db->prepare("SELECT count(user) AS cnt, user FROM table");
$stmt->execute();
$row = $stmt->fetchAll();
foreach ($row AS $row) {
    $user .= $row['user'];
}

function($user);

问题是我不知道如何每100次停止循环,执行函数,然后再次继续,直到没有更多的结果

您想要执行什么函数,这个特定查询的目的是什么?目前,它不会让你得到100甚至10results@JayBlanchard不,它没有,它返回每一个$row['user'];从一张名为tableMy bad的桌子上,我错过了这个。cnt对于返回的每一行都是相同的。你需要在循环过程中累积一个计数,每次它达到使用mod确定的100,你就会启动你的函数。嘿@YourCommonSense-你是如何确定这是一个重复的?我相信你的算法是“关闭”的,这就是我推荐mod函数的原因。您不必担心跳过的ID。下面的答案也不关心ID'sso,为什么你在没有证据支持的情况下一开始就去结束这个问题,而现在发布了一个答案,甚至没有回答Jay的评论。我想Jay不是你们联盟的一员?我实际上在想一些非常相似的东西,而不是如果$I++==100,我在想如果$I!=$行['cnt']{$i=$i+100;}这实际上很漂亮。一开始我没弄明白!所以设置一个计数器。然后每个循环增加计数器,然后检查循环是否在所需的间隔-如果是,执行功能并重置计数器。通常情况下,foreach将在没有更多结果时退出,因此根本不需要担心行计数
$stmt=$db->prepare("SELECT count(user) AS cnt, user FROM table");
$stmt->execute();
$row = $stmt->fetchAll();
foreach ($row AS $row) {
    $user .= $row['user'];
}

function($user);
$stmt=$db->query("SELECT user FROM table");
$i = 1;
foreach ($stmt as $row) {
    $user .= $row['user'];
    if ($i++ == 100) {
        function($user);
        $i = 1;
    }
}
function($user);