
- •Лабораторная работа № 2
- •Функции для работы с базами данных
- •Mysql_create_db (string dbname [,int link_identifier]),
- •Mysql_drop_db(string database_name [,int link_identifier]),
- •Mysql_list_dbs([int link_identifier]),
- •Mysql_db_name(int result, int row [, mixed field]),
- •Mysql_list_tables(string database [,int link_identifier]),
- •Mysql_data_seek(int result, int row_number),
- •Mysql_free_result(int result),
- •Обработка результатов запроса
- •Mysql_result (int result, int row [, mixed field]),
- •Array mysql_fetch_array(int result [, int result_type]),
- •Array mysql_fetch_row(int result),
- •Array mysql_fetch_lengths(int result),
- •String mysql_field_name(int result, int filed_index),
- •String mysql_field_type(int result, int filed_offset),
- •Mysql_list_fields(string dbname, string tblname [,int link_identifier]),
- •Mysql_num_fields(int result),
- •String mysql_error ([int link_identifier]),
Mysql_data_seek(int result, int row_number),
где
result- идентификатор результата,
row_number- номер строки.
Функция mysql_data_seekустанавливает указатель текущей строки в результате “result” в позицию “row_number”, так что следующий вызовmysql_fetch_rowиmysql_fetch_arrayвернет значения полей именно этой строки. Нумерация записей ведется с нуля. Функция возвращаетfalseв случае ошибки или если строки кончились.
Функция mysql_free_result
Функция mysql_free_resultуничтожает набор записей.
Синтаксис:
Mysql_free_result(int result),
где
result- идентификатор результата.
Функция mysql_free_resultосвобождает память, занимаемую набором записей “result”, возвращенным запросом. Эта функция необходима для экономии памяти, так как языкPHPавтоматически освобождает память при завершении сценария.
Обработка результатов запроса
Функция mysql_result
Функция mysql_resultосуществляет получение определенного поля результата.
Синтаксис:
Mysql_result (int result, int row [, mixed field]),
где
result - идентификатор результата,
row - номер записи в результате,
field- поле результата.
Функция mysql_resultвозвращает значение поля “field” в строке результата с номером “row”. Параметр “field” может задавать не только имя поля, но и его номер, то есть позицию, на которой столбец находился при создании таблицы, а также полное имя поля вида: “имя_таблицы.имя_поля”.
Функция mysql_fetch_array
Функция mysql_fetch_arrayизвлекает из результата очередную запись и помещает ее в ассоциативный массив.
Синтаксис:
Array mysql_fetch_array(int result [, int result_type]),
где
result - идентификатор результата,
result_type- задает вид возвращаемого массива и может принимать одно из следующих значений:MYSQL_NUM,MYSQL_ASSOC,MYSQL_BOTH.
Функция mysql_fetch_arrayвозвращает очередную строку результата в виде ассоциативного массива, где каждому полю сопоставлен элемент с ключом, совпадающим с именем поля. Дополнительно в массив записываются элементы с числовыми ключами и значениями, соответствующими величинам полей с этими индексами. В возвращаемом массиве они размещаются сразу за элементами с “обычными” ключами.
Например, в представленном ниже коде
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_arrayосуществлялось добавление строк результата запроса в ассоциативный массив и вывод строк результата на экран.
Функция mysql_fetch_row
Функция mysql_fetch_rowзаписывает запись в нумерованный массив.
Синтаксис:
Array mysql_fetch_row(int result),
где
result- идентификатор результата.
Функция возвращает массив, представленный в виде списка со значениями полей очередной строки результата “result”. Если указатель текущей позиции результата был установлен за последней записью (то есть строки кончились), возвращаетсяfalse. Текущая позиция сдвигается к следующей записи, так что очередной вызовmysql_fetch_rowвернет следующую строку результата. Каждое поле записи сохраняется в нумерованном элементе массива. При этом нумерация начинается с нуля.
Например, в представленном ниже коде
$res=mysql_query("SELECT*FROMTable");
while($Row=mysql_fetch_row($res))
{
// обрабатывается строка $Row
}
с помощью функции mysql_fetch_rowосуществлялось копирование записей результата запроса в нумерованный массив. При этом цикл обрывается, как только строки закончатся, то есть когда функцияmysql_fetch_rowвернетfalse.
Функция mysql_fetch_lengths
Функция mysql_fetch_lengthsвозвращает длину элемента записи.
Синтаксис: