09-06-2018 12:14

Доступ к результатам выборки через MySQL fetch array

MySQL fetch array обрабатывает результаты выборки из базы данных и возвращает в качестве результата обычный, ассоциативный или оба массива сразу. Фактически MySQL fetch - это трансляция информации, полученной по запросу к базе, в удобную для обработки форму.

На простых запросах синтаксис одна строка выборки обращается в массив, на потоковых запросах это инструмент последовательной обработки информационного потока.

Синтаксис и пример применения

MySQL LIMIT: описание, синтаксис, примеры и рекомендацииВам будет интересно:MySQL LIMIT: описание, синтаксис, примеры и рекомендации

На вход PHP MySQL fetch array поступает результат запроса и может быть указан формат желаемого результата:

  • MYSQL_ASSOC;
  • MYSQL_NUM;
  • MYSQL_BOTH.

В первом случае будет сформирован ассоциативный массив, во втором случае - массив с численными индексами, а в последнем случае будет доступен массив с индексами обоих типов.

В результате исполнения $aFetch = mysqli_fetch_array($cResult) будет создан массив $aFetch.

В данном примере MySQL fetch array обрабатывает исходные данные (1). В таблице всего четыре записи для каждой выполняется различные варианты fetch. Результат обработки выборки (2) сшивается в строки данных (3): $cFetch, $cFetch1, $cFetch2, $cFetch3.

По результатам видно, что без указания констант MYSQL_ASSOC, MYSQL_NUM и MYSQL_BOTH получается такой же результат, как и в случае MYSQL_BOTH. Эти константы считаются устаревшими и их использование не рекомендуется.

Использование MySQL fetch array

Использование выборки по результатам запроса в формате массива очень удобно в программах на PHP. Функционал доступа к базе MySQL предоставляет безопасные и надёжные методы доступа.

Ошибку уровня warning MySQL fetch array генерирует только в ситуации, когда $cResult отсутствует или недействителен, а следовательно, подключение к базе данных не состоялось. Имя $cResult может быть любым, здесь оно использовано в контексте примера. В запросе (2):

  • $cResult = mysqli_query($this->iConnectId, $cQuery);

переменная $this->iConnectId - это активное соединение с базой данных, оформленное в формате многофункционального объекта.

Инструмент MySQL fetch array - простое и эффективное средство, но всё же его использование удобно выполнять объектно-ориентированным способом.

Объект доступа к базе данных

MySQL - предельно простой и эффективный инструмент для организации информации. Базы данных MySQL за все время своего применения показали себя надёжным и эффективным средством для хранения и доступа к данным.

Механизм записи запросов к базе данных и их примения прост, но на практике идеально его оформлять в формате объекта всей базы данных, отдельной таблицы или конкретной структуры данных.

Конструкция MySQL fetch на реальной практике достаточно громоздка, особенно когда необходимо выполнить выборку информации из одной таблицы основной информации, например, штатного расписания, а затем из других таблиц выбирать данные по сотрудникам:

  • историю трудовой деятельности;
  • биографические данные;
  • производственные достижения;
  • область профессиональной компетенции;
  • другие данные.

Как правило, эти данные будут заполнены не по всем сотрудникам, а к тому же если вводить в таблицу штатного расписания частности по каждой строке, это сделает её громоздкой и неудобной в использовании.

Уровень объекта доступа к базе данных

Сфера применения MySQL fetch - трансформация данных в массив. Это можно выполнить на уровне методов объекта базы данных. В этом случае разработчик создаёт для себя инструмент высокого уровня, который предоставляет доступ к любой таблице базы данных одинаковым образом.

Происходит обращение к методу, который сразу формирует нужный массив данных, а операции формирования запроса, его исполнения и обработки результата ложатся в тело этого метода.

Это очень удобно, и необходимость писать громоздкие конструкции, создавая прецедент для возможной ошибки, отпадает. Особенно важно: такой подход упрощает вероятные модификации структуры базы данных, поскольку за пределы объекта доступа к базе данных они не выходят. При необходимости нужно будет переделать только объект доступа к базе данных, а не весь функционал сайта.

Ещё более удобно над объектом доступа к базе данных надстроить объекты реального назначения. Например, штатное описание, которое обладает свойствами: список, вывод данных по сотруднику, изменение карточки сотрудника и т. д. Инструменты доступа к данным скрываются в недрах методов реальных объектов, что упрощает работу разработчика и повышает качество результата.



Источник