PHP 7, mysqli, Ссылка: Пример использования bind_result против get_result
Я использую небуферизованную выборку (надеюсь) и удивляюсь памятирасход $m
.Поскольку я просто получаю (тестовый пример), я ожидаю, что память $m
будет почти постоянной.Но это не так, в зависимости от того, сколько строк я выбираю, оно увеличивается.Я ожидаю, что результат извлечения работает как курсор, получая только 1 строку за раз.
Как бы я этого достиг (читая 1 строку за раз)?
Примечание: Здесь https://stackoverflow.com/a/14260423/356726 они используют
$uresult = $mysqli->query("SELECT Name FROM City", MYSQLI_USE_RESULT);
, но я не нашел способа передать MYSQLI_USE_RESULT
где-то в подготовленном утверждении.
$result = $stmt->get_result(); // not stored I hope
$i = 0;
while ($row = $result->fetch_assoc()) {
$i++;
if ($i > 20000) {
break;
}
}
$m = memory_get_usage(); // see values between 10-50MB here, depending on i
$this->freeAndCloseStatement($stmt);