nastya97core
@nastya97core
Начинающий программист

Как в SQLite получать больше одной записи?

Здравствуйте. Если честно, я не совсем понимаю, почему оно ведёт себя не так, как условный mysql pdo. Почему, когда я делаю:
$db = new SQLite3('mysqlitedb.db');
p($db->query('SELECT * FROM test')->fetchArray(SQLITE3_ASSOC));

всегда возвращается лишь одна запись?

На просторах сети я нашла вот такой костыль (иначе я назвать это не могу)
function resultSetToArray($queryResultSet){
    $multiArray = array();
    $count = 0;
    while($row = $queryResultSet->fetchArray(SQLITE3_ASSOC)){
        foreach($row as $i=>$value) {
            $multiArray[$count][$i] = $value;
        }
        $count++;
    }
    return $multiArray;
}

Он уже выдаёт все записи
Подскажите:
1. почему при обычном запросе - одна запись?
2. По какой причине я могу увидеть весь массив лишь через этот костыль?
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
1. Потому что так работает функция. RTFM
SQLite3Result::fetchArray — Выбирает одну строку из результирующего набора и помещает её в ассоциативный или нумерованный массив, или в оба сразу.

2. Это не костыль, а штатное использование функции.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы