by
Arsen Kirillov
Тут можно посмотреть файл с
примерами
В данной статье описаны готовые решения
для работы с базой данных MySQL из php4
программы на Windows95/98/NT4.0/2000/*nix
операционных системах .
Для работы с базами данных в небольших
коммерческих структурах существует
довольно значительное ограничение -
недостаток времени для настройки и
отладки программ работающих на основе php
. Для решения различного рода
бухгалтерских задач и задач
документооборота применяются различные
интегрированные среды от Microsoft (Access97/2000) ,
которые дают возможность осуществить
полноценную работу с базой данных,
однако занимают довольно значительный
объем дискового пространства и большой
объем памяти, стоят больших денег и при
этом не являются достаточно стабильными
. Однако , часто незаслуженно ,
забывают про те преимущества , которые
несет с собой применения связки из php+MySql
в области работы с базами данных. А
именно - быстродействие и стабильность
работы программ на их основе ,
возможность удаленной работы с
программой по интернет / интранет ,
небольшой объем управляющих программ ,
бесплатность софта и т.д.
Для того чтобы несколько облегчить
работу с базами данных можно создать
несколько шаблонов- кусков готового
кода , пользуясь которыми можно
подключиться к готовой базе данных ,
создать таблицу , сделать выборку из
таблицы и отключиться от базы данных - то
есть выполнить некоторые типовые
операции , необходимые для создания
полноценно работающей базы данных .
Конечно использование готовых
шаблонов не исключает знание php но
несколько упрощает задачу управления
MySQL базой данных - за счет применения
повторно используемого кода.
Итак создадим нашу программу php (файл с
расширением php) в коренном каталоге
локального сервера (пускай это будет
-http://localhost) под именем "testmy.php".
Вот примерный список "шаблонов" ,
которые "жизненно" необходимы для
нормально работы с базой данных :
ПРОСТЕЙШИЕ ШАБЛОНЫ ДЛЯ
РАБОТЫ С БАЗОЙ ДАННЫХ MYSQL под PHP |
|
Когда необходимо |
где находиться |
1. Описание базы данных |
В любой программе на php
, которая работает с базой данных MySQL-
Обязательно. |
во внешнем файле (tunes.php) |
2. Подключения файла
описания базы данных |
-//- |
в программе на php |
3. Открытие базы данных |
-//- |
-//- |
4. Подключение к базе
данных из php программы |
-//- |
-//- |
5. Создание таблицы из
php программы (возможны варианты
управления данным процессом как из
командной строки так и из самой
программы) |
При необходимости
создать таблицу для тестирования
новой программы или при создании
новой таблицы для базы данных |
-//- |
6. аналогично для
удаления таблицы |
-//- |
-//- |
7. Вставка записей в
таблицу. |
При необходимости . |
-//- |
8. Вывод записей из базы
данных |
При необходимости . |
-//- |
9. Закрытие базы данных |
Обязательно |
-//- |
Шаблоны с номерами 6/7 могут также (при
модификации) применяться для управления
базой данных а шаблон 8 может
модифицировать для вывода информации в
нужном формате
Для работы с примерами создадим , с
помощью mysql.exe- консоли MySQL базы данных,
базу данных под именем 'ME' :
C:\mysql\bin>mysql.exe
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 79 to server version: 3.23.27-beta
Type 'help;' or '\h' for help. Type '\c' to clear the buffer
mysql> CREATE DATABASE ME;
Query OK, 1 row affected (0.05 sec)
mysql>\q
C:\mysql\bin> |
Для работы с базой нам необходим
шаблон ( стандартный кусок кода , который
можно использовать многократно) который
бы подключился к базе данных. Для
осуществления этой операции удобно
применить "подключаемый" файл , в
котором описать все переменные
необходимые для работы с базой данных.
табл1.Подключения переменных ,
которые описуют базу данных. (начало
файла testmy.php) |
<?
//Тут подключается база данных 'ME' см.
файл tunes.php
require('tunes.php');
?> |
В файле tunes.php находяться декларации
переменных , необходимых для работы с
базой данных. Этот файл должен
находиться в той же директории что и
основная программа в которой мы
работаем с базой данных.
табл2.Файл tunes.php |
<?
//В этом файле идут параметры
подключения к базе данных
define("DBName","ME");
define("HostName","localhost");
define("UserName","root");
define("Password","");
?> |
После того как мы создали файл и
прописали в него все нужные переменные
можно подключиться к базе данных из
программы нашей программы. Для этого
можно использовать следующий кусок кода
(шаблон):
табл3.Подключение к
базе данных из php программы (ОБЯЗАТЕЛЕН!!!) |
1 |
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1251">
<title>test of mysql empty fetch result</title>
<link rel="stylesheet" type="text/css"
href="css/me.css">
</head>
<body> |
2 |
<?
if(!$my_link=mysql_connect(HostName,UserName,Password))
{
echo "Ошибка подключения к базе
данных".DBName."!<br></body></html>";
exit;
} |
3 |
$query = getenv("QUERY_STRING");
parse_str($query);
?> |
часть 1 таблицы 3 содержит
стандартный код заголовка HTML страницы и
открывающий тег <body> , данная часть
необходима для нормальной работы веб
страницы.
часть 2 таблицы 3 содержит собственно код
подключения к базе данных а именно
подключает к базе данных с указанным в
файле tunes.php именем , паролем и хостом .В
случае ошибки подключения выдает
сообщение об ошибке и заканчивает
работу скрипта.
часть 3 таблицы 3 содержит транслятор
внешних переменных (переданных странице
в качестве параметров как например
http://localhost/testmy.php?perem1=123 ) и необходима в
дальнейшем для управления поведением
страницы , не вмешиваясь в ее код.
После того как мы подключились к базе
данных , нам может быть необходимо
создать таблицу для тестирования работы
шаблонов :
табл4. Создание таблицы из php
программы |
<?
// Имя нашей таблицы (которую мы хотим
создать/стереть)
$tname="test_mysql";
// Убиваем тестируемую таблицу (при
указании параметра testmy?drop=1командной
строки)
//примечание - такая операция
возможно только при существовании
таблицы - если ее еще нет то данная
операция приведет к ошибке!
if (isset($drop)){
mysql(DBName,"drop table $tname;");
if (mysql_error()){echo "1_Error num:
".mysql_errno().":
".mysql_error()."<BR></body></html>";exit;}
}
//Создаем тестируемую таблицу (при
указании параметра testmy?create=1командной
строки)\
//примечание - такая операция
возможно только при отсутствии
таблицы - если она уже создана то
данная операция приведет к ошибке!
if (isset($create)){
mysql(DBName,"create table $tname (id int unsigned,a
text);");
if (mysql_error()){echo "2_Error num:
".mysql_errno().":
".mysql_error()."<BR></body></html>";exit;}
}
?>
|
Для того чтобы создать таблицу -
которой пока еще нет в базе данных
следует вызвать нашу программу в
браузере как http://localhost/testmy.php?create=1
при этом будет создана таблица
примера в базе данных "ME" .
Итак что же делает выше указанный шаблон
- он "убивает" таблицу с именем
test_mysql (либо любую другую имя которой
задано в переменной $tname) и/или создает
таблицу с нужными нам полями .
Для того чтобы этот шаблон заработал
нужно странице в качестве параметров
передать переменную , свою для создания
таблицы и свою для ее уничтожения . (например
так как мы это уже делали http://localhost/testmy.php?create=1
- для создания ранее несуществующей
таблицы или http://localhost/testmy.php?drop=1
- для стирания существующей таблицы ,
если это вам понадобиться по какой-либо
причине)
Внешняя переменная "create" или "drop"
будет транслирована во внутреннюю
шаблоном подключения к базе данных (таблица
3).
Нужно отметить что данный шаблон
является универсальным для других
управляющих запросов к базе данных - в
него включена проверка на ошибки (my_error())-
которая позволяет отлаживать запросы к
базе данных путем анализа ошибок
После того как у вас создана таблица ее
можно наполнить какими либо данными -
для этого есть шаблон вставки
выполнения SQL оператора INSERT ,
аналогичный тому что применялся для
создания и удаления таблицы.
табл5. |
<?
$tname="test_mysql"; // Этот параметр
необязателен если был задан ранее
//Вставляем записи в тестируемую
таблицу всего 20 записей
for ($i=1;$i<20;$i++){
mysql(DBName,"insert into $tname (id,a) values
($i,'record num: $i')");
if (mysql_error()){echo "3_Error num:
".mysql_errno().":
".mysql_error()."<BR></body></html>";exit;}
}
?> |
В данном шаблоне применен оператор
цикла для вставки 20-ти записей в таблицу.
Итак в таблицу вставлены записи. Теперь
их можно вывести на экран (в форме списка
или таблицы)
табл6 Вывод записей из
базы данных в форме простого списка |
1 |
<?
// Делаем запрос
$r=mysql(DBName,"select id,a from fetch_mysql where
id>5");
if (mysql_error()){echo "4_Error num:
".mysql_errno().":
".mysql_error()."<BR></body></html>";exit;} |
2 |
//Выводим результаты запроса
for($i=0; $i<mysql_numrows($r); $i++)
{
$f=mysql_fetch_array($r);
echo $f['a']." - ".$f['id']."<br>";
}
?> |
для вывода результата запроса в виде
таблицы:
табл7 Вывод записей из
базы данных в виде таблицы |
1 |
<?
// Делаем запрос
$r=mysql(DBName,"select id,a from fetch_mysql where
id>5");
if (mysql_error()){echo "4_Error num:
".mysql_errno().":
".mysql_error()."<BR></body></html>";exit;} |
2 |
//Выводим результаты запроса в виде
таблицы
echo"<table border=\"1\">";
for($i=0; $i<mysql_numrows($r); $i++)
{
$f=mysql_fetch_array($r);
echo "<tr><td
width=\"90%\">".$f['a']." -
".$f['id']."</td></tr>";
}
echo "</table>";
?> |
Этот кусок кода выведет записи в виде
таблицы.
В качестве запросов к базе данных можно
применять самые разнообразные
выражения - единственное ограничение
тут что $d['argument'] - параметр argument то есть
название колонки , должен
присутствовать в запросе то есть если вы
указали бы в запросе -
<?
$r=mysql(DBName,"select id from fetch_mysql where
id>5"); |
а в части 2 шаблона написали бы
//Выводим результаты запроса
в виде таблицы
echo"<table>";
for($i=0; $i<mysql_numrows($r); $i++)
{
$f=mysql_fetch_array($r);
echo "<tr><td width=\"90%\">$f['a'] -
$f['id'] </td></tr>";
}
echo "</table>";
?> |
то такой код бы вызвал ошибку - так как
$f['a'] -не существует в результате запроса.
Следует отметить один важный момент -
если запрос являеться пустым то не будет
выведено ничего так как используеться
проверка количества записей в
полученном запросе.
После того как выполнены необходимые
операции с базой данных - ее необходимо
закрыть .
тадл.8. Закрытие базы данных. |
<?
if(!mysql_close())echo "error of closing link ".$my_link;
echo "</body></table>";
?> |
При ошибке закрытия базы будет
выведено сообщение.
Итак пользуясь данными готовыми
шаблонами и применяя их с небольшими
изменениями можно построить
работоспособную базу данных для
интранет / интернет.
Шаблоны можно перемежевывать кусками html
кода , не забывая вставлять
ограничивающие <? ?> теги как
ограничители для шаблонов - как это
сделано в файле- примере.
Конечно приведенные в этой статье
шаблоны самые примитивные из возможных ,
но даже они дают понять что разбивая
работу с базой данных в вашей программе
на определенные этапы - вы не только
сэкономите время но и получите хорошо
модифицируемый код , конечно при условии
хорошего документирования ваших
шаблонов php кода.
Ссылки:
http://www.php.net -
официальный сайт php
http://www.mysql.com - официальный сайт MySQL
http://www.apache.org -
официальный сайт Apache
PS . Все выше приведено при минимальных
модификациях применимо всего
сказанного и в программах , написанных
на php3.
|