Базы данных MySQL : Обработка результатов запроса
mysql_result
Получение определенного поля результата.
Синтаксис :
int mysql_result(int result, int row [, mixed field])
Функция возвращает значение поля field в строке результата с номером row.Параметр field может задавать не только имя поля, но и его номер - позицию, на которой столбец "стоял" при создании таблицы, а также полное имя поля вида: "имя_таблицы.имя_поля". Тем не менее, рекомендуется везде, где это только возможно,использовать именно имена полей.
Функция универсальна: с ее помощью можно "обойти" весь результат по одной ячейке. И хотя это не возбраняется, но делать, однако, не рекомендуется, т.к. mysql_result() работает довольно медленно.
Получение определенного поля результата.
Синтаксис :
int mysql_result(int result, int row [, mixed field])
Функция возвращает значение поля field в строке результата с номером row.Параметр field может задавать не только имя поля, но и его номер - позицию, на которой столбец "стоял" при создании таблицы, а также полное имя поля вида: "имя_таблицы.имя_поля". Тем не менее, рекомендуется везде, где это только возможно,использовать именно имена полей.
Функция универсальна: с ее помощью можно "обойти" весь результат по одной ячейке. И хотя это не возбраняется, но делать, однако, не рекомендуется, т.к. mysql_result() работает довольно медленно.
mysql_fetch_array
Извлекает из результата очередную запись и помещает ее в ассоциативный массив.
Синтаксис :
array mysql_fetch_array(int result [, int result_type])
Функция mysql_fetch_array() возвращает очередную строку результата в виде ассоциативного массива, где каждому полю сопоставлен элемент с ключом, совпадающим с именем поля. Дополнительно в массив записываются элементы с числовыми ключами и значениями, соответствующими величинам полей с этими индексами. В возвращаемом массиве они размещаются сразу за элементами с "обычными" ключами.
Параметр result_type задает вид возвращаемого массива и может принимать одно из следующих значений: MYSQL_NUM, MYSQL_ASSOC, MYSQL_BOTH (по умолчанию).
Может возникнуть вопрос: зачем вообще нужны числовые индексы. Ответ прост: дело в том, что в результате выборки в действительности могут присутствовать поля (фактически, колонки) с одинаковыми именами, но, соответственно, с различными индексами. Это происходит тогда, когда выборка в SELECT производится одновременно из нескольких таблиц.
Извлекает из результата очередную запись и помещает ее в ассоциативный массив.
Синтаксис :
array mysql_fetch_array(int result [, int result_type])
Функция mysql_fetch_array() возвращает очередную строку результата в виде ассоциативного массива, где каждому полю сопоставлен элемент с ключом, совпадающим с именем поля. Дополнительно в массив записываются элементы с числовыми ключами и значениями, соответствующими величинам полей с этими индексами. В возвращаемом массиве они размещаются сразу за элементами с "обычными" ключами.
Параметр result_type задает вид возвращаемого массива и может принимать одно из следующих значений: MYSQL_NUM, MYSQL_ASSOC, MYSQL_BOTH (по умолчанию).
Может возникнуть вопрос: зачем вообще нужны числовые индексы. Ответ прост: дело в том, что в результате выборки в действительности могут присутствовать поля (фактически, колонки) с одинаковыми именами, но, соответственно, с различными индексами. Это происходит тогда, когда выборка в SELECT производится одновременно из нескольких таблиц.
mysql_connect($host, $user, $pass); $result=mysql_db_query("database", "select id, name from tabl"); while($row=mysql_fetch_array($result)) { echo "id: ".$row["id"]."<BR>"; echo "id: ".$row[0]."<BR>"; echo "name: ".$row["name"]."<BR>"; echo "name: ".$row[1]."<BR>"; }; mysql_free_result($result);
mysql_fetch_row
Записывает запись в нумерованный массив.
Синтаксис :
array mysql_fetch_row(int result)
Функция возвращает массив-список со значениями полей очередной строки результата result. Если указатель текущей позиции результата был установлен за последней записью (то есть строки кончились), возвращается false. Текущая позиция сдвигается к следующей записи, так что очередной вызов mysql_fetch_row() вернет следующую строку результата.
Каждое поле записи сохраняется в нумерованном элементе массива. Нумерация начинается с 0.
Записывает запись в нумерованный массив.
Синтаксис :
array mysql_fetch_row(int result)
Функция возвращает массив-список со значениями полей очередной строки результата result. Если указатель текущей позиции результата был установлен за последней записью (то есть строки кончились), возвращается false. Текущая позиция сдвигается к следующей записи, так что очередной вызов mysql_fetch_row() вернет следующую строку результата.
Каждое поле записи сохраняется в нумерованном элементе массива. Нумерация начинается с 0.
$r=mysql_query("select * from OutTable where age<30"); while($Row=mysql_fetch_row($r)) { // обрабатываем строку $Row }Как видим, цикл оборвется, как только строки закончатся, т.е. когда mysql_fetch_row() вернет false.
mysql_fetch_object
Получение записи в свойствах объекта.
Синтаксис :
object mysql_fetch_object(int result)
Функция возвращает объект, в свойствах которого находятся поля текущей записи. В случае, если записи кончились, возвращает false.
Получение записи в свойствах объекта.
Синтаксис :
object mysql_fetch_object(int result)
Функция возвращает объект, в свойствах которого находятся поля текущей записи. В случае, если записи кончились, возвращает false.
mysql_connect($host, $user, $pass); $result=mysql_db_query("database", "select * from table"); while($rows=mysql_fetch_object($result)) { echo $rows->id; echo $rows->name; };
mysql_fetch_lengths
Возвращает длину элемента записи.
Синтаксис :
array mysql_fetch_lengths(int result)
Функция mysql_fetch_lengths() возвращает длину значения, полученного при помощи функций mysql_fetch_row(), mysql_fetch_array() или mysql_fetch_object().
Например, в следующем примере:
Возвращает длину элемента записи.
Синтаксис :
array mysql_fetch_lengths(int result)
Функция mysql_fetch_lengths() возвращает длину значения, полученного при помощи функций mysql_fetch_row(), mysql_fetch_array() или mysql_fetch_object().
Например, в следующем примере:
$arr=mysql_fetch_row($result); $len=mysql_fetch_lengths($result);массив $len будет содержать длину соответствующих элементов массива $arr, т.е. $len[0]=strlen(arr[0]) и т.д.
mysql_fetch_field
Возвращает информацию о свойствах объекта и о поле записи.
Синтаксис :
object mysql_fetch_field(int result [, int field_offset])
В необязательном параметре field_offset задается номер поля, свойства которого мы хотим получить. Если этот параметр не указан, при каждом вызвове функции mysql_fetch_field() возвращаются свойства следующего поля из набора записей result.
Возвращаемый объект имеет следующие свойства:name - имя поля
table - имя таблицы, которой принадлежит поле
max_length - максимальная длина поля
not_null - 1, если полю разрешено пустое значение
primary_key - 1, если поле является ключевым
unique_key - 1, если в поле допускаются только уникальные значения
multiple_key - 1, если в поле допустимо иметь повторяющиеся значения
numeric - 1, если поле числовое
blob - 1, если поле имеет тип BLOB
type - тип поля
unsigned - 1, если поле числовое беззнаковое
zerofill - 1, есле поле заполняется нулями
Возвращает информацию о свойствах объекта и о поле записи.
Синтаксис :
object mysql_fetch_field(int result [, int field_offset])
В необязательном параметре field_offset задается номер поля, свойства которого мы хотим получить. Если этот параметр не указан, при каждом вызвове функции mysql_fetch_field() возвращаются свойства следующего поля из набора записей result.
Возвращаемый объект имеет следующие свойства:
mysql_connect($host,$user,$pass); $result=mysql_db_query("database", select * from table"); for($i=0;$i<mysql_num_fields($result);$i++) { echo "Свойства поля $i:<BR>"; $param=mysql_fetch_field($result); if(!$param) echo "Нет информации о свойствах!"; echo "<PRE> name: $param->name table: $param->table max_length: $param->max_length not_null: $param->not_null primary_key: $param->primary_key unique_key: $param->unique_key multiple_key: $param->multiple_key numeric: $param->numeric blob: $param->blob type: $param->type unsigned: $param->unsigned zerofill: $param->zerofill </PRE>"; }
mysql_field_seek
Производит перемещение курсора к указанному полю.
Синтаксис :
int mysql_field_seek(int result, int field_offset)
Данная функция является излишней. Следующие фрагменты будут эквивалентны:
Производит перемещение курсора к указанному полю.
Синтаксис :
int mysql_field_seek(int result, int field_offset)
Данная функция является излишней. Следующие фрагменты будут эквивалентны:
$param=mysql_fetch_field($result, field_offset); и mysql_field_seek($result, field_offset); $param=mysql_fetch_field($result);
mysql_field_name
Возвращает имя поля.
Синтаксис :
string mysql_field_name(int result, int filed_index)
Функция mysql_field_name() возвращает имя поля, которое расположено в результате result с индексом filed_index (нумерация начинается с 0).
Возвращает имя поля.
Синтаксис :
string mysql_field_name(int result, int filed_index)
Функция mysql_field_name() возвращает имя поля, которое расположено в результате result с индексом filed_index (нумерация начинается с 0).
$result=mysql_query("SELECT id, name from table"); echo mysql_field_name($result,1); // Выведет: name
mysql_field_table
Возвращает имя таблицы, из которой было извлечено поле.
Синтаксис :
string mysql_field_table(int result, int field_offset)
Возвращает имя таблицы, из которой было извлечено поле со смещением field_offset в результате result.
Возвращает имя таблицы, из которой было извлечено поле.
Синтаксис :
string mysql_field_table(int result, int field_offset)
Возвращает имя таблицы, из которой было извлечено поле со смещением field_offset в результате result.
mysql_field_len
Возвращает длину поля.
Синтаксис :
int mysql_field_len(int result, int filed_offset)
Функция возвращает длину поля в результате result. Поле, как обычно, задается указанием его смещения. Под длиной здесь подразумевается не размер данных поля в байтах, а тот размер, который был указан при его создании. Например, если поле имеет тип varchar и было создано (вместе с таблицей) с типом varchar(100), то для него будет возвращено 100.
Возвращает длину поля.
Синтаксис :
int mysql_field_len(int result, int filed_offset)
Функция возвращает длину поля в результате result. Поле, как обычно, задается указанием его смещения. Под длиной здесь подразумевается не размер данных поля в байтах, а тот размер, который был указан при его создании. Например, если поле имеет тип varchar и было создано (вместе с таблицей) с типом varchar(100), то для него будет возвращено 100.
mysql_field_type
Возвращает тип набора записей в результате.
Синтаксис :
string mysql_field_type(int result, int filed_offset)
Эта функция похожа на mysql_filed_name(), только возвращает не имя , а тип соответствующей колонки в результате. Им может быть, например, int, double, real и т.д.
Возвращает тип набора записей в результате.
Синтаксис :
string mysql_field_type(int result, int filed_offset)
Эта функция похожа на mysql_filed_name(), только возвращает не имя , а тип соответствующей колонки в результате. Им может быть, например, int, double, real и т.д.
mysql_connect($host,$user,$pass); mysql_select_db("mydb"); $result=mysql_query("SELECT * FROM tabl"); $fields=mysql_num_fields($result); $rows=mysql_num_rows($result); $i=0; $table=mysql_field_table($result,$i); echo "Таблица "$table" имеет $fields полей и $rows записей<BR>"; echo "Структура таблицы:<BR>"; while($i<$fields) { $type=mysql_field_type($result,$i); $name=mysql_field_name($result,$i); $len=mysql_field_len($result,$i); $flags=mysql_field_flags($result,$i); echo $type." ".$name." ".$len." ".$flags."<BR>"; $i++; }
mysql_field_flags
Эта функция возвращает флаги, которые были использованы при создании указанного поля в таблице.
Синтаксис :
string mysql_field_flags(int result, int field_offset)
Возвращаемая строка представляет собой набор слов, разделенных пробелами, так что вы можете преобразовать ее в массив при помощи функции explode():
"not_nul", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp".
Эта функция возвращает флаги, которые были использованы при создании указанного поля в таблице.
Синтаксис :
string mysql_field_flags(int result, int field_offset)
Возвращаемая строка представляет собой набор слов, разделенных пробелами, так что вы можете преобразовать ее в массив при помощи функции explode():
$Flags=explode(" ",mysql_field_flags($r,$field_offset));Поля записей в MySQL могут иметь следующие свойства-флаги:
"not_nul", "primary_key", "unique_key", "multiple_key", "blob", "unsigned", "zerofill", "binary", "enum", "auto_increment", "timestamp".
mysql_list_fields
Возвращает список полей таблицы.
Синтаксис :
int mysql_list_fields(string dbname, string tblname [,int link_identifier])
Функция mysql_list_fields() возвращает информацию об указанной таблице tblname в базе данных bdname, используя идентификатор соединения link_identifier, если он задан (в противном случае - последнее открытое соединение). Возвращаемое значение - идентификатор результата, который может быть проанализирован обычными средствами. В случае ошибки возвращается -1, текс сообщения ошибки может быть получен обычным способом.
Возвращает список полей таблицы.
Синтаксис :
int mysql_list_fields(string dbname, string tblname [,int link_identifier])
Функция mysql_list_fields() возвращает информацию об указанной таблице tblname в базе данных bdname, используя идентификатор соединения link_identifier, если он задан (в противном случае - последнее открытое соединение). Возвращаемое значение - идентификатор результата, который может быть проанализирован обычными средствами. В случае ошибки возвращается -1, текс сообщения ошибки может быть получен обычным способом.
$link=mysql_connect($host,$user,$pass); $fields=mysql_list_fields("db1", "table", $link); $colums=mysql_num_fields($fields); // число полей в таблице // Далее распечатаем имена всех полей таблицы for($i=0;$i<$colums;$i++) { echo mysql_field_name($fields,$i)."<BR>"; }
mysql_num_fields
Эта функция возвращает число полей в одной строке результата, т.е. число колонок в результате.
Синтаксис :
int mysql_num_fields(int result)
В силу сказанного, функция позволяет определить горизонтальную размерность "двумерного массива результата".
Эта функция возвращает число полей в одной строке результата, т.е. число колонок в результате.
Синтаксис :
int mysql_num_fields(int result)
В силу сказанного, функция позволяет определить горизонтальную размерность "двумерного массива результата".
mysql_errno
Возвращает номер последней ошибки.
Синтаксис :
int mysql_errno ([int link_identifier])
Данная функция возвращает номер последней зарегистрированной ошибки или 0, если ошибок нет.
Идентификатор link_identifier можно не указывать, если за время работы сценария было установлено только одно соединение.
Возвращает номер последней ошибки.
Синтаксис :
int mysql_errno ([int link_identifier])
Данная функция возвращает номер последней зарегистрированной ошибки или 0, если ошибок нет.
Идентификатор link_identifier можно не указывать, если за время работы сценария было установлено только одно соединение.
mysql_connect("dbname"); echo mysql_errno().": ".mysql_error()."<BR>";
mysql_error
Возвращает сообщение об ошибке.
Синтаксис :
string mysql_error ([int link_identifier])
Эта функция возвращает строку, содержащую текст сообщения об ошибке или пустую строку, если ошибок небыло.
Возвращает сообщение об ошибке.
Синтаксис :
string mysql_error ([int link_identifier])
Эта функция возвращает строку, содержащую текст сообщения об ошибке или пустую строку, если ошибок небыло.
mysql_connect("dbname"); echo mysql_errno().": ".mysql_error()."<BR>";