Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Глава 4. Вступление в PHP и MySQL



РНР

PHP – это скрипт-язык (scripting language), встраиваемый в HTML, который интерпретируется и выполняется на сервере. Проще всего это показать на примере:

< html> < head>

< title> Example< /title> < /head> < body>

<? php echo " Hi, I'm a PHP script! "; ? > < /body> < /html>

После выполнения этого скрипта мы получим страничку, в которой будет написано

Hi, I'm a PHP script! Весьма просто и бесполезно.

Основное отличие от CGI-скриптов, написанных на других языках, типа Perl или C – это то, что в CGI-программах вы сами пишете выводимый HTML-код, а, используя PHP – вы встраиваете свою программу в готовую HTML-страницу, используя открывающий и закрывающий тэги (в примере <? php и? > ).

Отличие PHP от JavaScript, состоит в том, что PHP-скрипт выполняется на сервере, а клиенту передается результат работы, тогда как в JavaScript-код полностью передается на клиентскую машину и только там выполняется. Любители Internet Information Server найдут, что PHP очень похож на Active Server Pages (ASP), а энтузиасты Java скажут, что PHP похож на Java Server Pages (JSP). Все три языка позволяют размещать код, выполняемый на Web-сервере, внутри HTML страниц.

Возможности PHP

В нескольких словах – на PHP можно сделать все, что можно сделать с помощью CGI–программ. Например: обрабатывать данные из форм, генерировать динамические страницы, получать и посылать куки (cookies).

Кроме этого в PHP включена поддержка многих баз данных (databases), что делает написание Web-приложений с использованием БД до невозможности простым.

Вот неполный перечень поддерживаемых БД:

  • Adabas D
  • InterBase
  • Solid
  • dBase
  • mSQL
  • Sybase
  • Empress
  • MySQL
  • Velocis
  • FilePro
  • Oracle
  • Unix dbm
  • Informix
  • PostgreSQL

Вдобавок ко всему PHP понимает протоколы IMAP, SNMP, NNTP, POP3 и даже HTTP, а также имеет возможность работать с соке-тами (sockets) и общаться по другим протоколам.

Краткая история PHP

Началом PHP можно считать осень 1994 года, когда Rasmus Lerdorf решил расширить возможности своей Home-page и написать небольшой движок для выполнения простейших задач. Такой движок был готов к началу 1995 года и назывался Personal Home Page Tools. Умел он не очень много – понимал простейший язык и всего несколько макросов.

К середине 1995 года появилась вторая версия, которая называлась PHP/FI Version 2. Приставка FI – присоединилась из другого пакета Rasmusa, который умел обрабатывать формы (Form Interpritator). PHP/FI компилировался внутрь Apache и использовал стандартный API Apache. PHP скрипты оказались быстрее аналогичных CGI – скриптов, так как серверу не было необходимости порождать новый процесс. Язык PHP по возможностям приблизился к Perl, самому популярному языку для написания CGI-программ. Была добавлена поддержка множества известных баз данных (например, MySQL и Oracle). Интерфейс к GD – библиотеке, позволял генерировать картинки на лету. С этого момента началось широкое распространение PHP/FI.

В конце 1997 Zeev Suraski и Andi Gutmans решили переписать внутренний движок, с целью исправить ошибки интерпретатора и повысить скорость выполнения скриптов. Через полгода, 6 июня 1998 года вышла новая версия, которая была названа PHP 3.

К лету 1999 года PHP 3 был включен в несколько коммерческих продуктов. По данным NetCraft на ноябрь 1999 PHP использовался в более чем 1 млн. доменах.

2000 год — переписанный движок PHP4.

На сегодняшний день используется новая версия PHP 5, ее производительность в десятки раз выше чем у предыдущей.

Почему нужно выбирать PHP

Разработчикам Web-приложений нет необходимости говорить, что web-страницы — это не только текст и картинки. Достойный внимания сайт должен поддерживать некоторый уровень интерактивности с пользователем: поиск информации, продажа продуктов, конференции и т.п. Традиционно все это реализовалось CGI-скриптами, написанными на Perl. Но CGI- скрипты очень плохо масштабируемы. Каждый новый вызов CGI, требует от ядра порождения нового процесса, а это занимает процессорное время и тратит оперативную память. PHP предлагает другой вариант – он работает как часть Web-сервера, и этим самым похож на ASP от Microsoft.

Синтаксис PHP очень похож на синтаксис C или Perl. Люди, знакомые с программированием, очень быстро смогут начать писать программы на PHP. В этом языке нет строгой типизации данных и нет необходимости в действиях по выделению/освобождению памяти. Программы, написанные на PHP, достаточно легкочитаемы. Написанный PHP – код легко зрительно прочитать и понять, в отличие от Perl-про-грамм.

Недостатки PHP

PHP является интерпретируемым языком, и, вследствие этого, не может сравниться по скорости с компилируемым С. Однако при написании небольших программ, что, в общем-то, присуще проектам на PHP, когда весь проект состоит из многих небольших страниц с кодом, вступают в силу накладные расходы на загрузку в память и вызов CGI-програм-мы, написанной на С.

Не такая большая база готовых модулей, как, например, СPAN у Perl. С этим ничего нельзя поделать – это дело времени. В PHP 4 разработчики предусмотрели специальный репозиторий, аналогичный CPAN, и я думаю, очень скоро будет написано достаточное количество модулей для его наполнения.

MySQL

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

MySQL был разработан компанией TcX для внутренних нужд, которые заключались в быстрой обработке очень больших баз данных. Компания утверждает, что использует MySQL с 1996 года на сервере с более чем 40 БД, которые содержат 10, 000 таблиц, из которых более чем 500 имеют более 7 миллионов строк.

MySQL является идеальным решением для малых и средних приложений. Исходники сервера компилируются на множестве платформ. Наиболее полно возможности сервера проявляются на Unix-серверах, где есть поддержка многопоточности, что дает значительный прирост производительности.

На текущий момент MySQL все еще в стадии разработки, хотя версии 3.22 полностью работоспособны.

MySQL-сервер является бесплатным для некоммерческого использования. Иначе необходимо приобретение лицензии.

Возможности MySQL

MySQL поддерживает язык запросов SQL в стандарте ANSI 92, и кроме этого имеет множество расширений к этому стандарту, которых нет ни в одной другой СУБД.

Краткий перечень возможностей MySQL:

  • Поддерживается неограниченное количество пользователей, одновременно работающих с базой данных.
  • Количество строк в таблицах может достигать 50 млн.
  • Быстрое выполнение команд. Возможно MySQL самый быстрый сервер из существующих.
  • Простая и эффективная система безопасности.

MySQL действительно очень быстрый сервер, но для достижения этого разработчикам пришлось пожертвовать некоторыми требованиями к реляционным СУБД. В MySQL отсутствуют:

  • Поддержка вложенных запросов, типа SELECT * FROM table1 WHERE id IN (SELECT id FROM table2). Утверждается, что такая возможность будет в версии 3.23.
  • Не реализована поддержка транзакций. Взамен предлагается использовать LOCK/UNLOCK TABLE.
  • Нет поддержки внешних (foreign) ключей.
  • Нет поддержки триггеров и хранимых процедур.
  • Нет поддержки представлений (VIEW). В версии 3.23 планируется возможность создавать представления.

Примеры использования PHP

Работа с формами

В этом примере показано как в PHP легко обрабатывать данные с HTML – форм.

Создадим простой HTML файл.

< HTML>

< HEAD>

< TITLE> Запрос информации< /TITLE>

< BODY>

< CENTER>

Хотите больше знать о наших товарах?

< P>

< TABLE WIDTH = 400> < TR> < TD align = right>

< FORM ACTION=" email.php3" METHOD=" POST" >

Ваше имя: < BR>

< INPUT TYPE=" text" NAME=" name" SIZE=" 20" MAXLENGTH=" 30" >

< P>

Ваш email: < BR>

< INPUT TYPE=" text" NAME=" email" SIZE=" 20" MAXLENGTH=" 30" >

< P>

Меня интересуют:

< SELECT NAME=" preference" >

< OPTION value = " Яблоки" > Яблоки

< OPTION value = " Апельсины" > Апельсины

< /SELECT>

< P>

< INPUT TYPE=" submit" VALUE=" Отправить запрос! " >

< /FORM>

< /TD> < /TR> < /TABLE> < /CENTER>

< /BODY>

< /HTML>

Назовем этот файл request.html. В нем мы указали, что данные формы будут обрабатываться файлом email.php3. Приведем его содержание:

<?

/* Этот скрипт получает переменные из request.html */

PRINT " < CENTER> ";

PRINT " Привет, $name.";

PRINT " < BR> < BR> ";

PRINT " Спасибо за ваш интерес.< BR> < BR> ";

PRINT " Вас интересуют $preference. Информацию о них мы пошлем вам

на email: $email.";

PRINT " < /CENTER> ";

? >

Теперь, если пользователь вызовет request.html и наберет в форме имя «Вася», email: [email protected] и скажет, что его интересуют «Яблоки», а после этого нажмет «Отправить запрос! », то в ответ вызовется email.php3, который выведет на экран примерно следующее:

Привет, Вася

Спасибо за ваш интерес.

Вас интересуют Яблоки. Информацию о них мы пошлем вам на email:

[email protected]

Теперь мы должны сдержать обещание и выслать email.

Для этого в PHP есть функция MAIL.

Синтаксис:

void mail(string to, string subject, string message, string add_headers);

to – email адрес получателя.

subject – тема письма.

message – собственно текст сообщения.

add_headers – другие параметры заголовка письма (необязательный параметр).

Допишем в конец файла email.php3 следующий код:

<?

mail($email, " Запрос на информацию", " $name\\n

Спасибо за ваш интерес! \\n

Вас интересуют $preference\\n

Мы их распространяем бесплатно. Обратитесь в ближайший филиал нашей компании и получите ящик этого продукта.\\n

" );

mail(" [email protected]",

" Был запрос на информацию.",

" $name интересовали $preference\\n

email-адрес: $email. \\n" );

? >

Вот теперь пользователь будет получать письмо с более подробной информацией о наших товарах. Также письмо получит и администратор сайта.

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

Работа с MySQL: сохранение данных в базе данных

Для начала создаем базу данных и таблицу. Входим в MySQL, и выполняем команды:

> CREATE DATABASE products;

> CREATE TABLE clients (name VARCHAR(25), email VARCHAR(25),

choise VARCHAR(8));

Для общения с MySQL из PHP понадобятся следующие функции.

int mysql_connect(string hostname, string username, string

password);

Создать соединение с MySQL.

Параметры:

  • Hostname – имя хоста, на котором находится база данных.
  • Username – имя пользователя.
  • Password – пароль пользователя.

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

int mysql_select_db(string database_name, int link_identifier);

Выбрать базу данных для работы.

Параметры:

Database_name – имя базы данных.

link_identifier – ID соединения, которое получено в функции mysql_connect (параметр необязательный, если он не указывается, то используется ID от последнего вызова mysql_connect ).

Функция возвращает значение true или false.

int mysql_query(string query, int link_identifier);

Функция выполняет запрос к базе данных.

Параметры:

Query – строка, содержащая запрос.

link_identifier – см. предыдущую функцию.

Функция возвращает ID результата или 0, если произошла ошибка.

int mysql_close(int link_identifier);

Функция закрывает соединение с MySQL.

Параметры:

link_identifier – см. выше.

Функция возвращает значение true или false.

Теперь наш файл email.php3 будет иметь следующий вид:

<?

/* Этот скрипт получает переменные из request.html */

/* Некоторые переменные */

$hostname = " localhost";

$username = " myusername";

$password = " mypassword";

$dbName = " products";

/* Таблица MySQL, в которой хранятся данные */ $userstable = " clients";

/* email администратора */ $adminaddress = " [email protected]";

/* создать соединение */

MYSQL_CONNECT($hostname, $username, $password) OR DIE(" Не могу создать соединение " );

@mysql_select_db(" $dbName" ) or die(" Не могу выбрать базу данных " );

PRINT " < CENTER> ";

PRINT " Привет, $name.";

PRINT " < BR> < BR> ";

PRINT " Спасибо за ваш интерес.< BR> < BR> ";

PRINT " Вас интересуют $preference. Информацию о них мы пошлем вам

на email: $email.";

PRINT " < /CENTER> ";

/* Отправляем email */

mail($email, " Запрос на информацию", " $namen\\n Спасибо за ваш интерес! \\n Вас интересуют $preference\\n

Мы их распространяем бесплатно. Обратитесь в ближайший филиал нашей компании и получите ящик этого продукта.\\n " );

mail(" [email protected]", " Был запрос на информацию.", " $name интересовали $preference\\n email-адрес: $email. \\n" );

/* Вставить информацию о клиенте в таблицу */

$query = " INSERT INTO $userstable VALUES('$name', '$email',

'$preference')";

$result = MYSQL_QUERY($query);

PRINT " Информация о вас занесена в базу данных.";

/* Закрыть соединение */

MYSQL_CLOSE();

? >

Вот так легко можно работать с базой данных в PHP. Теперь кроме письменных уведомлений, информация о клиенте и его интересах будет заносится в таблицу MySQL.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-03; Просмотров: 465; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.102 с.)
Главная | Случайная страница | Обратная связь