Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

информационных технологий» 9 глава




· string session_id([string $sid])

Функция возвращает текущий идентификатор сессии SID. Если задан параметр $sid, то у активной сессии изменяется идентификатор на $sid. Делать это не рекомендуется. Фактически, вызвав ses-sion_id() до session_start(), можем подключиться к любой (в том числе и «чужой») сессии на сервере, если знаем ее идентификатор.

Другие функции.

· bool session_is_registered(string $name)

Функция session_is_registered() возвращает значение true, если переменная с именем $name была зарегистрирована в сессии, иначе возвращается false.

· bool session_unregister(struing $name)

Функция отменяет регистрацию для переменной с именем $name для текущей сессии. При завершении сценария все будет выглядеть так, словно переменная с именем $name и не была никогда зарегистрирована. Возвращает true, если все прошло успешно, и false – в противном случае. После вызова функции session_unregister() глобальная переменная, которая была «аннулирована», не уничтожается, а сохраняет свое значение.

· void session_unset()

Функция session_unset(), в отличие от session_unregister(), не только отменяет регистрацию переменных (всех переменных сессии, а не какой-то одной), но и уничтожает глобальные переменные, которые были зарегистрированы в сессии.

· string session_save_path([string $path])

Функция возвращает имя каталога, в котором будут помещаться файлы – временные хранилища данных сессии. В случае, если указан параметр, активное имя каталога будет переустановлено на $path. При этом функция вернет предыдущий каталог.

Установка обработчиков сессии.

Если стандартные обработчики сессии не устраивают, например, нужно хранить переменные сессии в базе данных или еще где-то. В этом случае достаточно будет переопределить обработчики своими собственными функциями.

Обзор обработчиков. Всего существует 6 функций, связанных с сессиями, которые PHP вызывает в тот или иной момент работы механизма обработки сессий.

· bool handler_open(string $save_path, string $session_name)

Функция вызывается, когда вызывается session_start(). Обработчик должен взять на себя всю работу, связанную с открытием базы данных для группы сессий с именем $session_name. В параметре $save_path передается то, что было указано при вызове session_save_path() или же путь к файлам-хранилищам данных сессий по умолчанию.

· bool handler_close()

Этот обработчик вызывается, когда данные сессии уже записаны во временное хранилище и его нужно закрыть.

· string handler_read(string $sid)

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

имя1=значение1; имя2=значение2;...;

Здесь имяN задает имя очередной переменной, зарегистрированной в сессии, а значениеN – результат вызова функции Seria-lize() для этой переменной. Пример: foo|i:1;count|i:10;

Она говорит о том, что из временного хранилища были прочитаны две целые переменные, первая из которых равна 1, а вторая – 10.

· string handler_write(string $sid, string $data)

Обработчик предназначен для записи данных сессии с идентификатором $sid во временное хранилище – например, открытое ранее обработчиком handler_open(). Параметр $data задается задается аналогично описаному выше. Действия этой функции сводятся к записи в базу данных строки $data без каких-либо ее изменений.

· bool handler_destroy(string $sid)

Обработчик вызывается, когда сессия с идентификатором $sid должна быть уничтожена.

· bool handler_gc(int $maxlifetime)

Обработчик вызывается при завершении работы сценария. Если пользователь окончательно «покинул» сервер, значит, данные сессии во временном хранилище можно уничтожить. Ей передается в параметрах то время (в секундах), по прошествии которого PHP принимает решение о необходимости «собрать мусор» (garbage collection) – т. е., это максимальное время существования сессии. Если храним данные сессии в базе данных, должны удалить из нее все записи, доступ к которым не осуществлялся более, чем $maxlifetime секунд. Таким образом, «застарелые» временные хранилища будут иногда очищаться.

Регистрация обработчиков.

· void session_set_save_handler($open, $close, $read, $write, $destroy, $gc)

Функция регистрирует подпрограммы, имена которых переданы в ее параметрах, как обработчики текущей сессии. Параметр $open содержит имя функции, которая будет вызвана при инициализации сессии, а $close – функции, вызываемой при ее закрытии. В $read и $write нужно указать имена обработчиков для чтения и записи во временное хранилище. Функция с именем, заданным в $destroy, будет вызвана при уничтожении сессии. Обработчик, определяемый параметром $gc, используется как сборщик мусора. Функцию можно вызывать только до инициализации сессии, иначе она игнорируется.

Сессии и Cookies. До сих пор подразумевалось, что использование сессий немыслимо без Cookies. Действительно, Cookies представляют собой наиболее простое решение задачи идентификации каждого подключившегося пользователя, что необходимо для связи временного хранилища и данных сессии. Но как быть, если пользователи отключили Cookies в своих браузерах? На любом браузере нужен механизм, позволяющий отказаться от использования Cookies при управлении сессиями. Такой механизм существует в PHP, и основная его идея состоит в том, чтобы передавать идентификатор сессии не в Cookies, а например, в данных запроса GET.

Явное использование константы SID. В PHP существует специальная константа с именем SID. Она содержит имя группы текущей сессии и ее идентификатор в формате имя=идентификатор. Достаточно передать значение константы SID в сценарий, чтобы он «подумал», что данные пришли из Cookies.

Пример использования сессий без Cookies

<?

session_name("test");

session_start();

session_register("count");

$count=@$count+1;

?>

<body>

<h2>Счетчик</h2>

В текущей сессии работы с браузером Вы открыли эту страницу <?=$count?> раз(а). Закройте браузер, чтобы обнулить этот счетчик.<hr>

<a href=sesget.php?<?=SID?>>Click here!</a>

</body>

Если набрать в браузере адрес:

http://www.somehost.ru/sesget.php

то создастся новая сессия с уникальным идентификатором. Если сразу же нажать кнопку Обновить, счетчик не увеличится, потому что при каждом запуске будет создаваться новое временное хранилище – у PHP просто нет информации об идентификаторе пользователя. В предпоследней строчке передаются в сценарий, запускаемый через гиперссылку, данные об идентификаторе текущей сессии. Теперь с его точки зрения они якобы пришли из Cookies…

Все будет работать так, как описано, только в том случае, если в браузере действительно отключены Cookies. Если же они включены, PHP просто не будет генерировать константу SID (она будет пустой) и задействует Cookies.

Неявное изменение гиперссылок. Если в гипессылке по ошибке пропустить <?=SID?>, PHP вставит его автоматически. Причем так, чтобы это не повредило другим параметрам, уже присутствующим в URL. Если запустить следующий сценарий в браузере, навести мышь на гиперссылку и посмотреть строку состояния,

<?session_start()?>

<body>

<a href=/path/some.php>Click here!</a><br>

<a href=/path/some.html?a=a&b=b>Click here!</a><br>

<a href=/>Click here!</a><br>

</body>

то получим следующие адреса этих ссылок с точки зрения браузера:

http://www.some.ru/path/some.php?PHPSESSID=816a921f

http://www.some.ru/path/some.html?a=a&b=b&PHPSESSID=86a20

http://www.some.ru/?PHPSESSID=8114536a920bfb2a

Во втором адресе идентификатор корректно вставился в конец обычных параметров страницы. В третьем адресе идентификатор сессии прикрепляется к URL независимо от типа документа, на который он указывает. Таким образом, константа SID – это устаревший прием передачи идентификатора сессии.

Неявное изменение формы. PHP умеет не только изменять гиперссылки, он также и добавляет скрытые поля в формы, которые формирует сценарий, чтобы передать идентификатор сессии вызываемому документу! Пример сценария, который выводит пустую форму, и в ней появляется дополнительное скрытое поле с идентификатором сессии.

<?session_start()?>

<form action=aaa method=post>

</form>

То, что выдается в браузере (Internet Explorer) после запуска этого сценария и выбора в меню пункта Просмотр в виде HTML:

<form action="aaa" method="post">

<INPUT TYPE=HIDDEN NAME="PHPSESSID"

VALUE="0a717e848e91db11b524a">

</form>

PHP добавил в форму скрытое поле с нужным именем и значением. Он также заключил в кавычки значения атрибутов тэга <form>.

Примечание. Сценарию, рассчитанному на сессии все равно, включены Cookies в браузере пользователя, или нет. PHP автоматически добавляет идентификатор сессии ко всем ссылкам и формам, которые он встретит, сценарии все равно будут продолжать работать, даже если Cookies будет отключены, только их URL (да и всех других документов) немного удлинятся.


Тема 14 Работа с базой данных MYSQL

 

14.1 Соединение с базой данных

14.2 Выполнение запросов к базе данных

 

14.1 Соединение с базой данных

База данных – совокупность связанных данных, сохраняемая в двумерных таблицах информационной системы. Программное обеспечение информационной системы, обеспечивающей создание, ведение и совместное использование баз данных, называется системой управления базами данных (СУБД).

С точки зрения программы база данных MySQL представляет собой организованный набор поименованных таблиц. Каждая таблица состоит из записей. Запись может содержать одно или несколько именованных полей. Число и имена полей задаются при создании таблицы. Каждое поле имеет определенный тип.

Преимущества работы с базами данных по сравнению с файлами:

1 Легко сортировать записи по дате/времени, организовывать поиск, различные отборы записей.

2 Нет проблем с совместным доступом к данным.

3 Работа с базами данных происходит быстрее, чем с файлами.

Устройство MySQL. MySQL – одна из самых популярных СУБД, которые используются в Web-программированиию Она предназначена для создания небольших (не более 100 Мбайт) баз данных, и поддерживает некоторое подмножество языка запросов SQL. SQL – специально разработанный стандарт языка запросов к базам данных.

MySQL – это программа-сервер, постоянно работающая на компьютере. Клиентские программы посылают ей специальные запросы через механизм сокетов (то есть при помощи сетевых средств), она их обрабатывает и запоминает результат. Затем, также по специальному запросу клиента, весь этот результат или его часть передается обратно.

Механизм использования сокетов подразумевает технологию клиент-сервер, а это означает, что в системе должна быть запущена специальная программа – MySQL-сервер, которая принимает и обрабатывает запросы от программ.

Структура MySQL трехуровневая: базы данных – таблицы – записи. Один сервер MySQL может поддерживать сразу несколько баз данных, доступ к которым может разграничиваться логином и паролем.

Соединение с базой данных. Прежде чем работать с базой данных, необходимо установить с ней сетевое соединение, а также провести авторизацию пользователя. Для этого служит функция mysql_connect().

· int mysql_connect([string $hostname] [,string

$username][,string $password])

Функция mysql_connect() устанавливает сетевое соединение с базой данных MySQL, расположенной на хосте $hostname (по умолчанию это localhost, т. е. текущий компьютер), и возвращает идентификатор открытого соединения. Вся дальнейшая работа ведется с этим идентификатором. При регистрации указывается имя пользователя $username и пароль $password (по умолчанию имя пользователя, от которого запущен текущий процесс, и пустой пароль). Строка $hostname также может включать в себя номер порта в формате: имя_хоста:порт (если сервер MySQL настроен не на стандартный, а на какой-то другой порт). При следующем запуске функции с теми же самыми аргументами второе соединение не будет открыто, а функция возвратит идентификатор уже существующего.

Соединение с MySQL-сервером будет автоматически закрыто по завершении работы сценария, либо при вызове функции mysql_close().

Если планируется открывать только одно соединение с базой данных за все время работы сценария, то можно не сохранять возвращенное значение, а также не указывать идентификатор соединения при вызове всех остальных функций.

До того как послать первый запрос серверу MySQL, необходимо указать, с какой базой данных необходимо работать. Для этого предназначена функция mysql_select_db().

· int mysql_select_db(string $dbname [,int

$link_identifier])

Она уведомляет PHP, что в дальнейших операциях с соединением $link_identifier (или с последним открытым соединением, если указанный параметр не задан) будет использоваться база данных $dbname.

Обработка ошибок. Если в процессе работы с MySQL возникают ошибки, то сообщение об ошибке и ее номер можно получить с помощью следующих двух функций.

· int mysql_errno([int $link_identifier])

Функция возвращает номер последней зарегистрированной ошибки. Идентификатор соединения $link_identifier можно не указывать, если за время работы сценария было установлено только одно соединение.

· string mysql_error([int $link_identifier])

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

Выполнение запросов к базе данных. Для формирования запросов к базе данных существует функция – mysql_query(), которая возвращает идентификатор результирующего набора данных.

· int mysql_query (string $query [,int

$link_identifier])

Эта функция посылает MySQL-серверу запрос $query и возвращает идентификатор ответа, или результата. Параметр $query представляет собой строку, составленную по правилам языка SQL. Используется установленное ранее соединение $link_identifier, а в случае его отсутствия – последнее открытое соединение.

Есть несколько команд SQL, которые возвращают только признак, успешно они выполнились или нет (это команды UPDATE, INSERT и т. д.). В этом случае этот признак и будет возвращен функцией. Для запроса SELECT возвращается идентификатор вывода, нулевое значение которого свидетельствует о том, что произошла ошибка.

Существует еще одна функция для выполнения запроса, но использовать ее менее удобно, поскольку всякий раз приходится указывать имя базы данных, к которой осуществляется доступ.

· int mysql(string $dbname, string $query

[,int $link_identifier])

Служит для тех же целей, что и функция mysql_query(), только обращение осуществляется не к текущей выбранной базе данных, а к указанной в параметре $dbname. Параметр $link_identifier можно опустить, тогда используется последнее открытое соединение.

14.2 Выполнение запросов к базе данных

Все запросы к базе данных посылаются при помощи функции – mysql_query() или mysql(). Они должны передаваться ей в виде строкового параметра. Этот параметр может быть и многострочным – т. е., содержать символы перевода строки. MySQL допускает включение любого количества пробелов, символов табуляции или перевода строки везде, где разрешено использование одного пробела.

Создание таблицы

· create table ИмяТаблицы (ИмяПоля тип,

ИмяПоля тип,...)

В базе данных создается новая таблица с колонками (полями), определяемыми своими именами (ИмяПоля) и указанными типами.

Типы полей. В квадратные скобки заключены необязательные элементы.

Целые числа. Формат записи:

префиксINT [UNSIGNED]

Необязательный флаг UNSIGNED задает, что будет создано поле для хранения беззнаковых чисел (больших или равных 0). Имена типов:

TINYINT – может хранить числа от –128 до +127

SMALLINT – диапазон от –32 768 до 32 767

MEDIUMINT – диапазон от –8 388 608 до 8 388 607

INT – диапазон от –2 147 483 648 до 2 147 483 647

BIGINT – диапазон от –9 223 372 036 854 775 808 до

9 223 372 036 854 775 807

Дробные числа. Формат записи:

ИмяТипа[(length,decimals)] [UNSIGNED]

Здесь length – ширина поля, decimals – количество знаков после десятичной точки, которые будут учитываться. UNSIGNED задает беззнаковые числа.

FLOAT – число с плавающей точкой небольшой точности

DOUBLE – число с плавающей точкой двойной точности

REAL – синоним для DOUBLE

DECIMAL – дробное число, хранящееся в виде строки

NUMERIC – синоним для DECIMAL

Строковые типы данных. Строки представляют собой массивы символов. Формат записи:

VARCHAR(length) [BINARY]

Тип строки, которая может хранить не более length символов, где length принадлежит диапазону от 1 до 255. При занесении некоторого значения в поле такого типа из него автоматически вырезаются концевые пробелы. Если указан флаг BINARY, то при запросе SELECT строка будет сравниваться с учетом регистра. Тип VARCHAR неудобен тем, что может хранить не более 255 символов.

TINYTEXT – может хранить максимум 255 символов

TEXT – может хранить не более 65 535 символов

MEDIUMTEXT – может хранить максимум 16 777 215 символов

LONGTEXT – может хранить 4 294 967 295 символов

Бинарные данные. Бинарные данные – это почти то же самое, что и данные в формате TEXT, но только при поиске в них учитывается регистр символов. Имеется 4 типа бинарных данных:

TINYBLOB – может хранить максимум 255 символов

BLOB – может хранить не более 65 535 символов

MEDIUMBLOB – может хранить максимум 16 777 215 символов

LONGBLOB – может хранить 4 294 967 295 символов

BLOB-данные не перекодируются автоматически, если при работе с установленным соединением включена возможность перекодирования текста «на лету».

Дата и время.

DATE – дата в формате ГГГГ-ММ-ДД

TIME – время в формате ЧЧ:ММ:СС

DATETIME – дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС

TIMESTAMP – время и дата в формате timestamp. Оно отображается в виде ГГГГММДДЧЧММСС.

Перечисления и множества. Тип перечисления задает, что значение соответствующего поля может быть не любой строкой или числом, а только одним из нескольких указанных при создании таблицы значений: value1, value2 и т. д. Формат задания перечисления:

ENUM(value1,value2,value3,...)

Множества означают, что в соответствующем поле может содержаться не одно, а сразу несколько значений (value1, value2 и т.д., т. е. – множество значений). Формат задания перечисления:

SET(value1,value2,value3,...)

Значений во множестве может быть не более 64 штук.

Модификаторы и флаги типов. К типу можно также присоединять модификаторы, которые задают его «поведение» и те операции, которые можно (или, наоборот, запрещено) выполнять с соответствующими столбцами. Основные модификаторы MySQL:

not null – означает, что поле не может содержать неопределенное значение – в частности, поле обязательно должно быть инициализировано при вставке новой записи в таблицу (если не задано значение по умолчанию)

primary key – отражает, что поле является первичным ключом, т. е. идентификатором записи, на которой можно ссылаться auto_increment. При вставке новой записи поле получит уникальное значение, так что в таблице никогда не будут существовать два поля с одинаковыми номерами.

Default – задает значение по умолчанию для поля, которое будет использовано, если при вставке записи поле не было проинициализировано явно.

Удаление таблицы:

· drop table ИмяТаблицы

Удаляет таблицу ИмяТаблицы. Таблица не обязательно должна быть пустой.

Вставка записи:

· insert into ИмяТаблицы(ИмяПоля1 ИмяПоля2...) values('зн1','зн2',...)

Добавляет в таблицу ИмяТаблицы запись, у которой поля, обозначенные как ИмяПоляN, установлены в значения, соответственно, знN. Те поля, которые в этой команде не перечислены, получают «неопределенные» значения (неопределенное значение – это не пустая строка, а просто признак, который говорит MySQL, что у данного поля нет никакого значения). Если для не указанного здесь поля при создании таблицы был задан not null, то данная команда закончится неуспешно. Значения полей можно заключать в апострофы и в обычные кавычки. При вставке в таблицу бинарных данных (или текстовых, содержащих апострофы и слэши) некоторые символы \, ' и символ с нулевым кодом должны быть «защищены» обратными слэшами.

Удаление записей:

· delete from ИмяТаблицы where Выражение

Удаляет из таблицы ИмяТаблицы все записи, для которых выполнено Выражение. Параметр Выражение – это логическое выражение, например

(id<10) and (name regexp 'a*b') and (age=25).

Поиск записей:

· select * from Таблица where Выражение [order by ИмяПоля [desc]]

Команда предназначена для того, чтобы искать все записи, удовлетворяющие выражению Выражение. Если записей несколько, то при указанном предложении order by они будут отсортированы по тому полю, имя которого записывается правее этого ключевого слова (если задан описатель desc, то упорядочивание происходит в обратном порядке). В предложении order by могут задаваться несколько полей. Символ * предписывает, что из отобранных записей следует извлечь все поля, когда будет выполнена команда получения выборки. Вместо звездочки можно через запятую непосредственно перечислить имена полей, которые требуют извлечения.

Обновление записей:

· update Таблица set (ИмяПоля1='зн1',

ИмяПоля1='зн2',...) where Выражение

В таблице Таблица для всех записей, удовлетворяющих выражению Выражение, указанные поля устанавливаются в соответствующие значения.

Получение числа записей, удовлетворяющих выражению:

select count(if(Выражение,1,NULL)) from Таблица

Получение уникальных значений столбцов. При использовании базы данных часто бывает нужным узнать, какие уникальные значения существуют в данном столбце таблицы. Например, если у каждой записи в некоей статистической таблице, содержащей сведения о людях, у нас есть поле Country (страна), в котором указана страна проживания конкретного человека, и мы хотим выяснить, в каких же странах проживают все люди, дожившие до 30 лет, занесенные в таблицу, можно выполнить запрос:

select distinct Country from Таблица where age>=30

Этот запрос сгенерирует результат, состоящий из одного столбца, в котором и будут перечислены искомые страны.

Получение результата. Результатом выполнения запроса является набор данных и количество вошедших в него записей. Каждая запись – это список значений полей в том же порядке, в котором они были указаны в запросе select... from Таблица на месте многоточия (если там была звездочка, то все поля). Таким образом, результат – это своеобразный двумерный массив: первый индекс – номер записи и второй – имя поля.

Параметры результата:

· int mysql_num_rows(int $result)

Функция возвращает число записей в результате запроса.

· int mysql_num_fields(int $result)

Функция возвращает число полей в одной строке результата.

Получение поля результата:

· int mysql_result (int $result, int $row, mixed $field)

Функция возвращает значение поля $field в строке результата с номером $row. Параметр $field может задавать не только имя поля, но и его номер – позицию, на которой столбец «стоял» при создании таблицы.

Получение целой строки результата. Этот способ получения результата чем-то похож на работу с файлами: появляется понятие текущей записи результата, и следующая операция считывания передвигает этот указатель на одну позицию вперед.

· array mysql_fetch_row(int $result)

Функция возвращает массив-список со значениями полей очередной строки результата $result. Если указатель текущей позиции результата был установлен за последней записью, возвращает false. Текущая позиция сдвигается к следующей записи, так что очередной вызов mysql_fetch_row() вернет следующую строку результата. Пример:

$r=mysql_query ("select * frim OurTable where age<30");

while($Row=mysql_fetch_row($r))

{ // обрабатываем строку $Row }

Цикл оборвется, как только строки закончатся, т. е. когда mysql_fetch_row() вернет false.

Работать с числовыми индексами полей не удобно. Лучше использовать для адресации поля внутри результата его имя.

· array mysql_fetch_array(int $result)

Функция возвращает очередную строку результата в виде ассоциативного массива, где каждому полю сопоставлен элемент с ключом, совпадающим с именем поля. Дополнительно в массив записываются элементы с числовыми ключами и значениями, соответствующими величинам полей с этими индексами. В возвращаемом массиве они размещаются сразу за элементами с «обычными» ключами.

· int mysql_data_seek (int $result,

int $row_number)

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

Получение информации о результате:

· string mysql_field_name(int $result,

int $field_index)

Функция возвращает имя поля, которое расположено в результате по смещению $field_index.

· string mysql_field_type(int $result,

int $field_offset)

Функция возвращает тип соответствующей колонки в результате. Им может быть, например, int, double и т. д.

· int mysql_field_len(int $result,

int $field_offset)

Функция возвращает длину поля в результате $result. Поле задается указанием его смещения. Под длиной подразумевается тот размер, который был указан при его создании. Например, если полеимеет тип varchar и было создано (вместе с таблицей) с типом varchar(100), то для него будет возвращено 100.

· string mysql_field_flags(int $result,

int $field_offset)

Функция возвращает флаги, которые были использованы при создании указанного поля в таблице. Возвращаемая строка представляет собой набор слов, разделенных пробелами, которую можно преобразовать в массив при помощи функции explode():

$Flags=explode(" ", mysql_field_flags($r,

$field_offset));

Флаги типов полей:

not_null – поле обязательно должно быть проинициализировано при вставке очередной строки в таблицу.

Primary_key – поле является первичным ключом – т. е. идентификатором строки, который будет использован для ссылок на нее.

Unique_key – поле должно быть уникальным.

Multiple_key – по этому полю построен индекс.

Blob – поле может содержать бинарный блок данных, который никак не интерпретируется.

Unsigned – поле содержит беззнаковые числа.

zerofill – использовать символы с нулевым кодом вместо пробелов.

binary – поле содержит бинарные данные.

enum – поле содержит элемент перечисления, т. е. только один элемент из нескольких возможных.

auto_increment – это поле автоматически нумеруется. Проставляется MySQL при добавлении новой записи так, чтобы в таблице никогда не образовывалось нескольких строк с одинаковым значением этого поля.

timestamp – в поле динамически проставляется текущее время при добавлении или изменении записи.

· string mysql_field_table (int $result, int

$field_offset)

Возвращает имя таблицы, из которой было извлечено поле со смещением $field_offset в результате $result. Результат запроса может быть получен из нескольких таблиц.

Пример использования функций поддержки MySQL:

<?

// Соединяемся с сервером на локальной машине

mysql_connect("localhost");

// Выбираем текущую базу данных

mysql_select_db("my_database");

// Получаем все данные таблицы

$result = mysql_query("SELECT * FROM tbl");

// Запрашиваем идентификатор данных о полях таблицы

$fields = mysql_num_fields($result);

// Узнаем число записей в таблице

$rows = mysql_num_rows($result);

// Получаем имя таблицы (правда, мы его и так знаем, но все же...)

$table = mysql_field_table($result,0);

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...