 |
(PHP
4 >= 4.0.6) dbx_query - посылает запрос и получает все результаты (если
имеются). Описаниеobject dbx_query
(object link_identifier, string sql_statement [, long flags]) dbx_query()
возвращает объект или 1 при успехе и 0 при неудаче. Результирующий
объект возвращается только в том случае, если запрос, заданный в sql_statement,
производит результирующий набор. Пример
1. Как обрабатывать результирующее значение<?php
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password") or die("Could
not connect"); $result = dbx_query($link, 'SELECT id, parentid, description FROM
table'); if ( is_object($result) ) { // ... здесь обработка, см. детальный пример
далее ... // сначала печатаются имена полей и типы // затем прорисовывается таблица,
заполненная возвращёнными значениями полей } else if ( $result == 1 ) { echo("Query
executed successfully, but no result set returned"); } else { exit("Query failed");
} dbx_close($link); ?> |
| Параметр
flags используется для контроля количества возвращаемой информации.
Это может быть любая комбинация следующих констант с битовой операцией 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]['field_name_for_first_column']
также модифицируется. Заметьте, что DBX_RESULT_INDEX
используется всегда, независимо от фактического значения параметра flags.
Это означает, что эффективными являются только следующие комбинации:-
DBX_RESULT_INDEX DBX_RESULT_INDEX
| DBX_RESULT_INFO DBX_RESULT_INDEX
| DBX_RESULT_INFO | DBX_RESULT_ASSOC - по умолчанию,
если flags не специфицирован.
Возвращаемый объект
object имеет 4 или 5 свойств, в зависимости от flags:
- handle
Правильный дескриптор соединённой БД, и, как таковой,
он может использоваться в специфичных для модуля функциях (если требуется).
$result = dbx_query
($link, "SELECT id FROM table"); mysql_field_len ($result->handle, 0); |
- cols
и rows
Они содержат количество столбцов (полей) и рядов (записей),
соответственно.
$result = dbx_query ($link, 'SELECT id FROM table'); echo $result->rows;
// количество записей echo $result->cols; // количество полей |
- info
(по выбору)
Оно возвращается по выбору только тогда, когда DBX_RESULT_INFO
или DBX_RESULT_ASSOC специфицирована с параметром flags.
Это 2-мерный массив, в котором два именованных ряда (name и type)
для получения информации о столбце.
Пример 2. Перечисляются имя и тип каждого поля
$result = dbx_query ($link, 'SELECT id FROM table', 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
Это
свойство содержит фактические результирующие данные, возможно, ассоциированные
также с именами столбцов, в зависимости от flags. Если DBX_RESULT_ASSOC
установлена, то можно использовать $result->data[2]["field_name"].
Пример 3. Выводится содержимое свойства data в HTML-таблице
$result = dbx_query ($link, 'SELECT id, parentid, description FROM
table'); 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"; | |
Примечание:
всегда просматривайте также соответствующую документацию модуля.
См.
также dbx_connect(). |  |