Функции Язык программирования PHP

 

dbx_query

(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";

Примечание: всегда просматривайте также соответствующую документацию модуля.

 

 

Глава 24. Использование PHP из командной строки

Начиная с версии 4.3, РНР поддерживает новый SAPI-тип (Server Application Programming Interface) под названием CLI, что означает Command Line Interface. Как следует из названия, главной задачей этого SAPI-типа является разработка приложений оболочки/shell (или рабочего стола) с помощью РНР. Имеются весьма небольшие отличия CLI SAPI от других SAPI, которые будут далее рассмотрены в этой главе.

CLI SAPI был выпущен в первый раз с PHP 4.2.0, но тогда это был эксперимент, и нужно было явно включать его командой --enable-cli при запуске ./configure. Начиная с PHP 4.3.0, CLI SAPI больше не является экспериментальным и всегда встроен и устанавливается как двоичный исполняемый файл php (называется php.exe в Windows).

Существенные отличия CLI SAPI от других SAPI: