Выполнить запрос
Назначение
Функция dbx_query передаёт SQL-запрос на выполнение и получает все результаты его обработки (если имеются).
Синтаксические правила
object dbx_query (идентификатор, запрос[, флаги]);
-
Идентификатор -
Идентификатор ранее установленного соединения с БД.
-
Запрос -
Текст SQL-запроса.
-
Флаги -
Флаги управления возвращаемой информацией. Может быть любая комбинация следующих констант с битовой операцией
OR (|):-
DBX_RESULT_INDEX -
Всегда установлен, то есть возвращённый объект имеет свойство
data, которое является двухмерным массивом, индексированным цифрами. Например, в выраженииdata[2][3]2 – это количество строк (или записей) ответа, а 3 – это количество столбцов (или полей) в каждой строке ответа. Индексация начинается с 0; -
DBX_RESULT_ASSOC -
Возвращённый объект содержит информацию, относящуюся также и к
DBX_RESULT_INFO, даже если она и не специфицирована; -
DBX_RESULT_INFO -
Предоставлять информацию о столбцах (имя и тип данных);
-
DBX_RESULT_ASSOC -
Устанавливает соответствие между значением поля и его именем, используемом как ключ, и делает это соответствие доступным свойству
dataвозвращаемого объекта.
Ассоциированные результаты являются на самом деле ссылками на численно индексированные данные, так что модификация
data[0][0]имеет такой же эффект, что и модификацияdata[0]['имя первого столбца'].DBX_RESULT_INDEXиспользуется всегда, независимо от фактического значения параметра флаги. Это означает, что эффективными являются только следующие комбинации:-
DBX_RESULT_INDEX; -
DBX_RESULT_INDEX | DBX_RESULT_INFO; -
DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC– по умолчанию, если параметр флаги не задан.
-
Возвращаемое значение
Результат выполнения SQL-запроса:
-
объект типа
object(только в том случае, если SQL-запрос порождает строки ответа); -
1 – успешная обработка SQL-запроса, не порождающего строк ответа (например,
CREATE TABLE …); -
0 – неудачная обработка любого SQL-запроса.
Возвращаемый объект object имеет 4 или 5 свойств, в зависимости от значения параметра флаги:
-
handle -
Правильный дескриптор присоединённой БД. Может использоваться в функциях, где фигурирует в качестве параметра функции, например:
$result = dbx_query ($link, "SELECT make FROM auto"); //вызываем функцию php-интерфейса СУБД ЛИНТЕР для получения свойств первого столбца запроса $columns = Linter_Get_Col_Prop ($result->handler, 1);
-
colsиrows -
Содержат количество столбцов (полей) и строк (записей), соответственно, например:
$result = dbx_query ($link, 'SELECT make FROM auto'); echo $result->rows; // количество строк echo $result->cols; // количество столбцов
-
info(по желанию) -
Двумерный массив, состоящий из именованных строк (
nameиtype), для получения информации о столбце. Возвращается только тогда, когда установлен флагDBX_RESULT_INFOилиDBX_RESULT_ASSOC, например:$result = dbx_query ($link, 'SELECT make, model, year FROM auto', DBX_RESULT_INDEX | DBX_RESULT_INFO); for ($i = 0; $i < $result->cols; $i++ ) { echo $result->info['name'][$i] . "\n"; echo $result->info['type'][$i] . "\n"; } -
data -
Содержит результаты выполнения запроса, возможно, ассоциированные также с именами столбцов, в зависимости от установленного значения параметра флаги. Если установлен флаг
DBX_RESULT_ASSOC, то к столбцам можно обращаться по их именам$result->data[2]["имя столбца"], например (вывод результатов в HTML-формате):$result = dbx_query ($link, 'SELECT make, model, year FROM auto'); echo "<table>\n"; foreach ( $result->data as $row ) { echo "<tr>\n"; foreach ( $row as $field ) { echo "<td>$field</td>"; } echo "</tr>\n"; } echo "</table>\n";