Откуда знает MP3-Player, например Winamp информацию
об исполнителе или названии композиции, которую он проигрывает? Может
быть, он сам каким-то чудным образом узнает название песни и альбома?
Нет, здесь нет никакого волшебства! Подобная информация содержится в
самих файлах. Музыкальные файлы других форматов таких как WMA или Ogg
Vorbis также содержат подобную информацию, но здесь речь пойдет о
файлах в формате mp3.
Классические СУБД, такие как MySQL (а так же MS SQL,
Oracle, PostgreeSQL) состоят из отдельного сервера, поддерживающего
работу базы данных и прослушивающих определённый порт, на предмет
обращения клиентов. В качестве клиента может выступать в том числе и
расширение PHP, реализующего интерфейс, с помощью которого
осуществляются запросы к базе. Движок SQLite и интерфейс к ней
реализованы в одной библиотеке, что увеличивает скорость выполнения
запросов. Такой сервер часто называют встроенным.
Рассмотрим пример построения дерева иерархии (в развернутом виде) на
основе информации из базы данных с помощью PHP и MySQL. Ключ к решению
данной задачи - использование рекурсивной функции. Иерархия разделов
будет храниться в таблице базы данных MySQL.
База данных с точки зрения MySQL (и некоторых других СУБД) - это
обыкновенный каталог, содержащий двоичные файлы определенного формата -
таблицы. Таблицы состоят из записей, а записи, в свою очередь, состоят
из полей. Поле имеет два атрибута - имя и тип.
Тип поля может быть:
Целым;
Вещественным;
Строковым;
Бинарным;
Дата и время;
Перечисления и множества.
Возможные типы данных, диапазоны и описания представлены в последующих таблицах:
Структурированный язык запросов SQL позволяет производить различные
операции с базами данных: создавать таблицы, помещать, обновлять и
удалять из них данные, производить запросы из таблиц и.т.д. Далее мы
последовательно рассмотрим все эти операторы.
Несмотря на то, что последний стандарт SQL принят в 1992 году, на
сегодняшний день нет ни одной СУБД, где бы он полностью выполнялся.
Более того, в различных базах данных часть операций осуществляется
по-разному. Мы будем придерживаться диалекта SQL характерного для СУБД
MySQL поэтому не все запросы могут выполняться для других баз данных.
Примечание: Команды SQL не чувствительны к регистру, но традиционно они набираются прописными буквами.
Это руководство предназначено для тех web-разработчиков,
которые хотят автоматизировать передачу файлов по сети либо
взаимодействовать с другими Интернет - сервисами. Для чтения
этой главы вам необходимо владеть пониманием принципа работы
стратегии клиент - сервер и знать основы синтаксиса PHP.
cURL и libcurl - библиотеки, позволяющие серверу передавать
файлы на удаленный компьютер, используя множество Интернет
протоколов. Библиотеки имеют очень гибкую настройку и
позволяют выполнить практически любой удаленный запрос.
Используя их, web-сервер может выступать полноценным клиентом
любого основанного на HTTP протоколе сервисе, к примеру:
XML-RPC, SOAP, или WebDAV.
В этой статье будет рассказано о том, что такое cURL, как
его использовать из командной строки, и о его применении в
PHP.