mysql_result

Получение определенного поля результата.
Синтаксис:

int mysql_result(int result, int row [, mixed field])

Функция возвращает значение поля field в строке результата с номером row. Параметр field может задавать не только имя поля, но и его номер - позицию, на которой столбец "стоял" при создании таблицы, а также полное имя поля вида: "имя_таблицы.имя_поля".
Тем не менее, рекомендуется везде, где это только возможно,использовать именно имена полей.
Функция универсальна: с ее помощью можно "обойти" весь результат по одной ячейке. И хотя это не возбраняется, но делать, однако, не рекомендуется, т.к. mysql_result() работает довольно медленно.

mysql_field_len

Возвращает длину поля.
Синтаксис:

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 и т.д.

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():

$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, текст сообщения ошибки может быть получен обычным способом.

$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)

В силу сказанного, функция позволяет определить горизонтальную размерность "двумерного массива результата".

mysql_errno

Возвращает номер последней ошибки.
Синтаксис:

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])

Эта функция возвращает строку, содержащую текст сообщения об ошибке или пустую строку, если ошибок небыло.

mysql_connect("dbname");
echo mysql_errno().": ".mysql_error()."<BR>";

mysql_list_processes()

Возвращает список процессов MySQL (PHP 4 >= 4.3.0, PHP 5)

Описание:

resource mysql_list_processes ( [resource link_identifier] )

mysql_list_processes() возвращает указатель на результат, содержащий в себе текущие, выполняемые сервером, процессы.

Пример использования mysql_list_processes()

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

$result = mysql_list_processes($link);
while ($row = mysql_fetch_assoc($result)){
printf("%s %s %s %s %s\n", $row["Id"], $row["Host"], $row["db"],
$row["Command"], $row["Time"]);
}
mysql_free_result ($result);
?>

Вышеописанный пример выдаст следующий результат:

1 localhost test Processlist 0
4 localhost mysql sleep 5

mysql_fetch_assoc()

Обрабатывает ряд результата запроса и возвращает ассоциативный массив (PHP 4 >= 4.0.3, PHP 5)

Описание:

array mysql_fetch_assoc ( resource result )

Возвращает ассоциативный массив с названиями индексов, соответсвующими названиям колонок или FALSE если рядов больше нет.

Функция mysql_fetch_assoc() аналогична вызову функции mysql_fetch_array() со вторым параметром, равным MYSQL_ASSOC. Функция возвращает только ассоциативный массив. Если вам нужны как ассоциативные, так и численные индексы в массиве, обратитесь к функции mysql_fetch_array().

Если несколько колонок в запросе имеют одинаковые имена, значение ключа массива с индексом названия колонок будет равно значению последней из колонок. Чтобы работать с первыми, используйте функции, возвращающие не ассоциативный массив: mysql_fetch_row(), либо используйте алиасы. Смотрите пример использования алиасов в SQL в описании функции mysql_fetch_array().

Важно заметить, что mysql_fetch_assoc() работает НЕ медленнее, чем mysql_fetch_row(), предоставляя более удобный доступ к данным.

Замечание: Имена полей, возвращаемые этой функцией, регистро-зависимы.

Расширенный пример использования mysql_fetch_assoc()

<?php

$conn = mysql_connect("localhost", "mysql_user", "mysql_password");

if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}

if (!mysql_select_db("mydbname")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}

$sql = "SELECT id as userid, fullname, userstatus
FROM sometable
WHERE userstatus = 1";

$result = mysql_query($sql);

if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}

if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}

// До тех пор, пока в результате содержатся ряды, помещаем их в
// ассоциативный массив.
// Заметка: если запрос возвращает только один ряд -- нет нужды в цикле.
// Заметка: если вы добавите extract($row); в начало цикла, вы сделаете
// доступными переменные $userid, $fullname, $userstatus.
while ($row = mysql_fetch_assoc($result)) {
echo $row["userid"];
echo $row["fullname"];
echo $row["userstatus"];
}

mysql_free_result($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 производится одновременно из нескольких таблиц.

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.

$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.

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().

Например, в следующем примере:

$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, есле поле заполняется нулями

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->namee
table:$param->tablee
max_length:$param->max_lengthh
not_null:$param->not_nulll
primary_key:$param->primary_keyy
nique_key:$param->unique_keyy
multiple_key:$param->multiple_keyy
numeric:$param->numericc
blob:$param->blobb
type:$param->typee
unsigned:$param->unsignedd
zerofill:$param->zerofilll
</PRE>";
}

mysql_field_seek

Производит перемещение курсора к указанному полю.
Синтаксис:

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).

$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.