The Russian Electronic Developer Magazine | |
Русский электронный журнал разработчика | |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>Sample PHP page</TITLE> </HEAD> <BODY> 2 + 2 = <? echo 2+2; ?> </BODY> </HTML>(посмотреть результат работы примера).
PHP позволяет писать быстро, грязно и без особой возможности повторного использования кода -- словом, типичный скриптовый язык :) Очень часто PHP используется для работы с базами MySQL -- ещё одно простое и бесплатное решение для веб-строительства.
Для PHP3:
LoadModule php3_module libexec/libphp3.dll ... AddType application/x-httpd-php3 .phtml .php3 AddType application/x-httpd-php3-source .phps
LoadModule php4_module libexec/modphp4.dll ... AddType application/x-httpd-php .phtml .php AddType application/x-httpd-php-source .phps
Примечание 1: старые версии апача (до 1.3.9) не поддерживают механизм загружаемых модулей; эти версии должны быть собраны с поддержкой PHP. Russian Apache/2 1.3.6 собран с mod_php
Примечание 2: с веб-серверами, отличными от апача, (например, Xitami) в качестве интерпретатора написанных на PHP CGI-скриптов можно использовать PHP standalone executable.
Примечание 3: кстати, особые эстеты могут использовать PHP и для системного скриптинга.
Для этого надо скачать standalone executable и запускать его с ключом -q:
Отправьте форму для того, чтобы посмотреть на обработку введённых данных.
Код HTML, описывающий эту форму, показан ниже. Обратите внимание на имена чекбоксов -- они пишутся так, как будто являются элементами массива.
<FORM ACTION="form.phtml" METHOD=GET> Text field: <INPUT TYPE=TEXT NAME="Textfield" SIZE=25 MAXLENGTH=80><P> <INPUT TYPE=CHECKBOX NAME="Chk[1]"> Checkbox 1<BR> <INPUT TYPE=CHECKBOX NAME="Chk[2]" CHECKED> Checkbox 2<BR> <INPUT TYPE=CHECKBOX NAME="Chk[3]"> Checkbox 3<P> <INPUT TYPE=RADIO NAME="Radio" VALUE="1" CHECKED> Radiobutton 1<BR> <INPUT TYPE=RADIO NAME="Radio" VALUE="2"> Radiobutton 2<BR> <INPUT TYPE=RADIO NAME="Radio" VALUE="3"> Radiobutton 3<P> <SELECT NAME="Selection" SIZE=1> <OPTION VALUE="1">Menu string 1</OPTION> <OPTION VALUE="2">Menu string 2</OPTION> <OPTION VALUE="3">Menu string 3</OPTION> </SELECT><P> <INPUT TYPE=SUBMIT VALUE="Отправить форму"> </FORM>Пример 2: работа с MySQL
Подробное описание функций для работы с MySQL можно найти в PHP Manual: MySQL functions. Здесь я приведу только скелет, который выглядит примерно так: открыть соединение с MySQL, сделать один или несколько запросов, закрыть соединение:
$db = @mysqli_connect( $host, $user, $password ) or die( "У нас упал MySQL"); mysqli_select_db( "имя_базы", $db ); mysqli_query( "некий SQL-запрос", $db ); mysqli_close( $db );Вместо функции mysqli_connect() можно использовать mysqli_pconnect(), которая открывает постоянное соединение (persistent connection) с MySQL либо использует уже открытое соединение. Это снижает нагрузку на MySQL.
Обработку результатов селекта можно проводить по следующей схеме:
$sqls = "SELECT field_1, field_2 ... field_n FROM SomeTable"; $res = mysqli_query( $sqls, $db ); $n = mysqli_num_rows($res); for ($i=0; $i<$n; $i++) { list( $field_1, $field_2 ... $field_n ) = mysqli_fetch_row($res); do_something( $field_1, $field_2 ); } mysqli_free_result($res);либо:
$sqls = "SELECT field_1, field_2 ... field_n FROM SomeTable"; $res = mysqli_query( $sqls, $db ); while ( $row = mysqli_fetch_array($res) ) { do_something( $row[0], $row[1] ); } mysqli_free_result($res);Чуть менее схематичный и работающий пример с комментариями можно посмотреть здесь.
<? $ok = 1; // тут идёт какое-то обращение к базе // вывод сообщений об ошибках запрещён @mysqli_connect(...) @mysqli_query(...) @mysqli_close(...) // если не всё нормально -- сбрасываем флажок $ok $ok = 0; // кончился PHP-шный код, пошёл HTML ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>Некая страница</TITLE> </HEAD> <BODY> <? if ($ok) { // выводим то, что хотели вывести } else { echo "Извините, сбой базы"; } ?> </BODY> </HTML>При этом "or die", действительно, идёт в лес.
Dmitry Ban
Интересные ссылки:
Бизнес понятие бизнеса.
Комментариев к странице: 0 | Добавить комментарий
Редактор: Дмитрий Бан
Оформление: Евгений Кулешов