Выполнить запрос

Назначение
 

Функция 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-запроса:

  1. объект типа object (только в том случае, если SQL-запрос порождает строки ответа);

  2. 1 – успешная обработка SQL-запроса, не порождающего строк ответа (например, CREATE TABLE …);

  3. 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";