52680.fb2 Справочник по PHP - читать онлайн бесплатно полную версию книги . Страница 126

Справочник по PHP - читать онлайн бесплатно полную версию книги . Страница 126

Эта функция возвращает число записей, найденных в результате выполнения SQL-команды SELECT (поиск по базе данных).

<?php

$link = mysql_connect("localhost", "username", "password");

mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);

$num_rows = mysql_num_rows($result);

echo "Получено строк: $num_rowsn";

?>

mysql_affected_rows

Возвращает количество измененных записей в БД MySQL.

Синтаксис:

int mysql_affected_rows([int link_identifier]);

Функция mysql_affected_rows() возвращает количество записей, которые были изменены в базе данных в результате выполнения запросов DELETE, INSERT, REPLACE или UPDATE.

Если последним запросом была команда DELETE без ограничения WHERE (т.е. из таблицы были удалены все записи), то наша функция возвратит 0.

mysql_insert_id

Получает вставленный идентификатор.

Синтаксис:

int mysql_insert_id([int $link_identifier])

Функция возвращает непосредственно перед ее вызовом сгенерированный идентификатор записи для автоинкрементного поля после выполнения команды insert. Вызывать ее разумно только сразу после выполнения инструкции insert, например, в таком контексте:

mysql_query("insert into Таблица(поле 1, поле 2) values("aa","bb")");

$id=mysql_insert_id();

Теперь к только что вставленной записи можно обратиться, используя идентификатор $id:

$r=mysql_query("select * from Таблица where id=$id");

$Row=mysql_fetch_array($r);

mysql_data_seek

Устанавливает указатель текущей строки.

Синтаксис:

int mysql_data_seek(int result, int row_number)

Эта функция устанавливает указатель текущей строки в результате result в позицию row_number, так что следующий вызов mysql_fetch_row() и mysql_fetch_array() вернет значения полей именно этой строки.

Нумерация записей ведется с 0.

Возвращает false в случае ошибки или если строки кончились.

mysql_free_result

Уничтожает набор записей.

Синтаксис:

int mysql_free_result(int result)

Данная функция освобождает память, занимаемую набором записей result, возвращенным запросом.

Эта функция необходима, когда нужно экономить память, т.к. PHP автоматически освобождает память при завершении сценария.

Обработка результатов запроса

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