我在php作业中批处理查询进行处理。我很好奇是否有办法找到工作所在的地方。
psdeuo代码
function perform(){
$batch_limit = 0;
while($batch_limit<20){
results = getstuff($batch_limit);
dostuff(results);
$batch_limit += 2;
}
function getstuff($batch_limit){
$results = $con->query("SELECT * FROM table LIMIT $batch_limit, 2);
return $results;
}
因此,例如,如果任意dostuff()函数在
的结果查询上中断 'Select * FROM table LIMIT 4, 2'
无论如何我可以拿起并执行
'Select * From table LIMIT 6, 2'
答案 0 :(得分:1)
将当前限制写入简单的键/值表,并在perform()
的开头选择它。
我总是有一张表来提供这类信息,因为它经常派上用场。 只需创建一个包含两列“key”和“value”的表。键为VARCHAR,值为整数。
然后在每次调用getstuff()
的开头插入批量限制function getstuff($batch_limit){
$con->query("UPDATE keyvaluetable SET value=$batch_limit WHERE key='batch_limit'");
$results = $con->query("SELECT * FROM table LIMIT $batch_limit, 2");
return $results;
}
然后在执行()
的开头选择它function perform(){
$result = $conn->query("Get value from before query here");
if($result){
$batch_limit = $result;
}else{
$batch_limit = 0;
}
while($batch_limit<20){
results = getstuff($batch_limit);
dostuff(results);
$batch_limit += 2;
}