@accountnujen

Зачем несколько уровней в функции вывода результата sqlite3?

В сети я нашел функцию, с помощью которой можно выводить результат выполнения sqlite3 запросов
function bdresult($queryResultSet){
$multiArray = [];
$count = 0;
while ($row = $queryResultSet->fetchArray(SQLITE3_ASSOC)) {
    foreach ($row as $i => $value) {
        $multiArray[$count][$i] = $value;
    }
    $count++;
}
return $multiArray;
}

объясните пожалуйста, зачем здесь $count? При каких запросах я получу несколько результатов?
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 2
GlazOtca
@GlazOtca
Не в бровь, а в глаз!
Это конструкция
$row = $queryResultSet->fetchArray(SQLITE3_ASSOC)
получает строку ответа. Соответственно, если ваш запрос получает больше одной строки в ответе - вы получите несколько результатов.
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
Это идиотская функция.
Ни $count, ни несколько уровней (вложенных циклов, как я понимаю) здесь не нужны.
Она зачем-то перебирает полученный массив $row в цикле, чтобы получить в итоге точно такой же.
ТОГО ЖЕ САМОГО результата можно добиться кодом
function bdresult($queryResultSet){
    $multiArray = [];
    while ($row = $queryResultSet->fetchArray(SQLITE3_ASSOC)) {
        $multiArray[] = $row;
    }
    return $multiArray;
}

без дурацкого перебора массива $row.
Эта функция запрашивает по очереди все строки, которые вернул запрос, и добавляет их в массив, который потом возвращает.

Несколько результатов вы получите при тех запросах, которые возвращают несколько результатов. Ваш Капитан Очевидность.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы