#php #pdo
#php #pdo
Вопрос:
Я пытаюсь получить большую часть данных из своей базы данных, но у меня возникла ошибка нехватки памяти, поэтому я пытаюсь разделить возвращенные данные на специи, в каждой из которых всего 500 строк. Я делаю это, создавая функцию рекурсии с использованием PDO и PHP, но мне нужно получать последний выбранный идентификатор при каждом вызове функции. итак, я спрашиваю, есть ли какой-либо способ получить последний выбранный идентификатор с помощью PDO, функция будет выглядеть следующим образом
$names = array();
function getData(amp;names){
$db->query("SELECT id, colName FROM tableName WHERE id between last-fetched-id AND last-fetched-id 500");
$get = $db->fetchAll();
if(!empty($get)){
foreach($get AS $row){
array_push($names,$row['colName']);
}
getData();
}
}
Итак, не мог бы кто-нибудь, пожалуйста, сказать мне, как получить last-fetched-id
заранее спасибо
Комментарии:
1. Зачем вам нужны все имена из таблицы he? Что вы собираетесь с ними делать?
2. Попробуйте предложения SQL LIMIT и OFFSET?
3. @Your Common Sense Это просто пример, а не реальный запрос
4. Эта ошибка исключительно связана с вашим ужасным решением несуществующей проблемы. Теперь расскажите нам, что делает ваш запрос и для чего вы его запускаете.
5. Здесь мне придется согласиться с @Your Common Sense … если вы хотите сохранить все данные из таблицы в памяти (этот
$names
массив), не имеет значения, попытаетесь ли вы загрузить одну большую выборку или несколько маленьких. Итак, это сводится к следующему: что вы действительно хотите сделать?
Ответ №1:
В вашем коде слишком много ошибок, невозможно исправить одну за другой. Итак, вот только код, который вам нужен.
function getData(){
return $db->query("SELECT colName FROM tableName")->fetchAll(PDO::FETCH_COLUMN);
}