Есть ли какой-либо способ получить последний выбранный идентификатор с помощью PDO

#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);
}