수천 개의 레코드가있는 MySQL 데이터베이스에서 가져온 이름으로 로고를 만드는 PHP 스크립트를 만들었습니다.PHP : 한 번에 하나씩 MySQL 레코드 가져 오기
로고를 만드는 데 레코드 당 최대 몇 초가 걸릴 수 있으므로 전체 프로세스에는 며칠이 소요됩니다. 내가 지금 만든 스크립트는 모든 데이터를 미리 가져 와서 로고를 만들기 시작합니다. 그러나 스크립트가 실행되는 동안 아직 처리되지 않은 레코드의 데이터가 변경 될 수 있습니다!
다음 레코드를 처리 할 때 최신 데이터를 가져 오는 동안 결과 집합을 반복 할 수 있습니까?
이것은 내가 지금 무엇을 사용 : 당신은 할 수 없습니다
$sql = "SELECT * FROM names";
$mysqli = new mysqli($server, $user, $password, $database);
if ($mysqli->multi_query($sql)) {
do {
if ($result = $mysqli->store_result()) {
while ($record = mysqli_fetch_assoc($result)) {
$records[] = $record
}
$result->close();
}
} while ($this->DB->next_result());
}
foreach($records as $record) {
//create the logo from $record['name']
}
나는 비슷한 것을 제안 할 것이지만, 작업이 끝나면 추가 필드 "done"을 true로 업데이트하면됩니다. 그런 다음 LIMIT 1과 WHERE done = false를 가진 새로운 SELECT. 해야 할 것 같네요. – Erik