ru en uk

  авторизация

(044) 362 48 16   (098) 294 41 60


   Цены

Работа с базами данных


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

Для начала работы у нас должна быть установлена база PostgreSQL или MySQL. Я рекомендую последнюю, так как она работает под Unix и Windows, более стабильна, быстра и ошибкоустойчива. Еще раз сформулируем нашу задачу: освоить присоединение к серверу базы данных, создание и исполнение SQL запросов, а также работу с ошибками. Без знания этих действий мы вряд ли сможем без проблем управляться с базой данных.

Итак, приступим. Кстати, далее по тексту я буду использовать MySQL в виду изложенных выше причин (хотя с PostgreSQL все действия похожи, надо лишь поменять префикс mysql_ на pg_).

Создадим базу данных телефонных номеров сотрудников вашей фирмы для наших тестов:


shell> mysql -u root
mysql> create database basa;
Query OK, 1 row affected (0.00 sec)
mysql> use basa;
Database changed
mysql> CREATE TABLE phone (
-> id int(10) NOT NULL auto_increment,
-> name varchar(32) NOT NULL,
-> phone varchar(32) NOT NULL,
-> PRIMARY KEY (id)
-> );
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye


Или используйте файл из архива (в конце статьи) basa.sql, поместите его в каталог MySQL и сделайте так:

shell> mysql -u root < basa.sql


А сейчас напишем скрипт view.php, который будет показывать данные из базы данных.


/* Замените нижеследующие переменные на свои */
$host "localhost";    // MySQL server
$user_db "root";        // MySQL пользователь
$pass_db "";            // MySQL пароль
$dbase "basa";        // MySQL база данных
$dtable "phone";        // Таблица в базе данных

/* Соединение с сервером базы данных */
mysql_connect ($host$user_db$pass_db);
/* Выбор базы данных */
mysql_select_db($dbase);
/* Создание SQL запроса */
$sql "SELECT id, name, phone FROM $dtable";
/* Исполнение SQL запроса */
$result mysql_query($sql);
/* Проверка количества вернувшихся строчек в результате*/
$rows mysql_num_rows($result);
/* Если нет результата или результат меньше 1, то предупредить нас об этом или вывести результат*/
if ((!$rows) || ($rows 1)) {echo "Результатов НЕТ!!!";}
else {
echo 
'IDИмяТелефон';
while(list(
$id$name$phone) = mysql_fetch_row($result)) {
echo 
"30">$id166">$name98">$phone\n";
     }
}
print 
"\n";
?>


При запуске этого скрипта мы получим страничку с текстом "Результатов НЕТ!!!", так как в базе данных эти самые данные отсутствуют. Что делать? Перейти к следующему разделу и научиться добавлять данные из форм!

Передача данных из формы в базу данных


Создадим одну страничку под названием forma.html с HTML формой и скрипт add.php, который будет обрабатывать данные из этой формы.

forma.html




Добавление данных в базу данных





Имя



Телефон








add.php


/* Замените нижеследующие переменные на свои */
$host "localhost";    // MySQL server
$user_db "root";        // MySQL пользователь
$pass_db "";            // MySQL пароль
$dbase "basa";        // MySQL база данных
$dtable "phone";        // Таблица в базе данных

/* Соединение с сервером базы данных */
mysql_connect ($host$user_db$pass_db);
/* Выбор базы данных */
mysql_select_db($dbase);

$name $_POST["name"];
$phone $_POST["phone"];

// Основные действия скрипта
// Создание SQL запроса
$sql "INSERT INTO $dtable (name, phone) VALUES ('$name', '$phone')";

/* Исполнение SQL запроса */
$result mysql_query($sql);
// Проверка исполнения операции
if(!$result) {
echo 
"

Ошибка!

\n"
;
echo 
mysql_errno().":  ".mysql_error()."

";
} else {
print 
'';
print 
"Запись $name  -  $phone создана!";
//echo phpinfo();
}
?>



Как видите, данные из формы (поля name и phone) РНР понимает как переменные. И эти переменные очень легко можно добавить в базу данных. Теперь при просмотре странички view.phtml Вы увидите то, что собственноручно внесли.

Данные можно обрабатывать скриптом, а также как часть URL, если заменить $_POST на $_GET в теле скрипта. Например: http://localhost/add.php?name=SomeName&phone=268-3962 добавит в базу данных имя SomeName с телефоном 268-3962. Кстати, это вовсе не номер телефона моей девушки - можете не звонить!!!

Дерзайте! А в следующей статье (очень скоро!) мы продолжим наши "разборки" с РНР.


 
Блокировка файлов
29.05.2007
"Warning! On most operation systems flock() is implemented at the process level. When using a multithreaded server API like ISAPI you cannot rely on flock() to protect files against other PHP scripts running in parallel threads of the same server instance!"
Постраничный вывод результата
29.05.2007
Основы безопасности
29.05.2007
Сразу скажем что PHP и Апач в этой области далеко не продвинулись. Нормальная многопользовательская конфигурация веб-сервера должна работать под разными пользователями...

 

Rambler's Top100