@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? При каких запросах я получу несколько результатов?
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 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.
Эта функция запрашивает по очереди все строки, которые вернул запрос, и добавляет их в массив, который потом возвращает.

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

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

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