[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Базы Данных / MySQL /

Работа с MySQL с использованием PHP

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

   В качестве примера можно рассмотреть 2 популярные базы - Oracle и MySQL. Последняя не требует лицензии, распространяется с открытыми кодами, поэтому может использоваться во всех случаях. MySQL специально разрабатывалась для использования в вэб-сайтах. Для этого разработчики использовали стандартный язык запросов SQL, который используется и в Oracle, но с некоторыми доработками. Некоторые встроенные команды SQL не используются для ускорения выполнения запросов. Поэтому MySQL работает обычно быстрее, чем другие базы данных. Это очень большое преимущество, так как особое внимание при разработке сайтов уделяется как раз скорости загрузки страницы. Однако если у вас будет огромная база данных, безопасность играет более существенную роль, чем скорость доступа. Поэтому лучше всего использовать базу, которая обеспечивает более высокий уровень безопасности. Oracle разграничивает доступ к данным на нескольких уровнях - роли, привилегии, пользователи. Также возможно разграничить доступ к физической структуре данных - отдельные таблицы можно разместить на разных серверах, тем самым увеличив производительность всей базы данных при большой загрузке сервера. На возможностях Oracle я останавливаться не буду, так как это потянет на довольно объемную книгу.
   Если вы только начинаете изучать вэб-дизайн, то вам лучше всего остановить на простой и надежной базе данных. Например, если вы пишете на PHP, то вот список доступных баз данных: Adabas D, dBase, Empress, FilePro, Informix, ODBC, Interbase, mSQL, MySQL, Oracle, PostgreSQL, Solid, Sybase, Velocis, Unix DBM, Microsoft SQL Server. Я покажу на примере MySQL, как производится доступ к данных с помощью PHP.

   Доступ к любой базе данных осуществляется по следующей схеме :

Подключение к базе данных
Инструкция SQL
Чтение результатов
Отключения от базы данных.

   Конкретная реализация зависит от языка программирования и интерфейса базы данных.

<html> <body> <?
// определение переменных (пример)
$host = "localhost"; // хост, на котором установлен сервер базы данных
$db = "test_db"; // алиас (имя) базы данных
$username = "user_1"; // пользователь
$pass = "pwd"; // пароль

$error = 0;
/*
таблица вида:
test_table
id int(5);
name char(10);
*/

// соединение с сервером базы данных
$aDBLink = mysql_connect($host,$username,$pass);
if(!empty($aDBLink))
// соединение с базой данных
if(mysql_select_db($db,$aDBLink) == FALSE)
$error = 2;
else
$error = 1;

// запрос из базы данных
$sSql = "select * from test_table where id > 5";
if(($aSel=mysql_query($sSql))==TRUE && $error==0) // идентификатор базы данных можно не указывать. //тогда берется активная база данных
{
while($aRow = mysql_fetch_array($aSel))
{
$nId = $aRow["id"]; // можно обращать к полям таблицы не по именам, а
$sName = ["name"]; // по идентификатору столбца, например $nId = $aRow[0];
}
mysql_free_result($aSel); // очистка массива результатов
}
else
$error = 3;

// обработка ошибок
switch($error)
{
case 1 : $s = "Error connect to database"; break;
case 2 : $s = "Error. Database don't exist "; break;
case 3 : $s = "Error query"; break;
}
print "$s";

//вставка в базу данных
$id = 34;
$sName = "test";
// в запросе происходит автоматическое связывание переменных и
// вставка значений в базу данных
$sIns = "insert into test_table values($id,'$sName')";
if(($aRes = mysql_query($sIns)) == FALSE)
print "Error query";

// изменение записей
$sName = "test_2";
// в запросе происходит автоматическое связывание переменных и
// изменение значений в базе данных
$sIns = "update test_table set name='$sName' where id=7";
if(($aRes = mysql_query($sIns)) == FALSE)
print "Error query";

?> </body> </html>
   Отключение от базы происходит автоматически, как только пользователь закрывает страницу в броузере. Хотя можно конечно явно отключать функцией mysql_close().

   Для обеспечения быстроты работы советую сделать один файл конфигурации, в котором вы будете хранить все настройки, имя базы данных, хост, пароли и т.д. Это позволит вам впоследствии не тратить время на исправление всех страниц, а исправите в одном месте. Этот файл потом можно подключать к вашим скриптам с помощью функции include().

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

Сивожелезов Алексей Александрович
www.asinfo.com.ua
sivogelezov@rambler.ru




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Базы Данных / MySQL /

Близкие контакты третьего вида с Visual Foxpro (или как написать свой провайдер для FoxPro)
12-03-2010   

Многие наверное как и я в свое время задавались интересным вопросом – “А вот как бы задействовать всю силу применяемой в моем проекте СУБД? Не только стандартные SQL запросы, а и скрытые возможности.” Тогда ведь можно будет получать результат найэффективнешими методам... подробнее

Кол. просмотров: общее - 3991 сегодня - 1

Oracle: Изучаем метки доступа к строкам: задание свойств столбца доступа в таблице
07-03-2010   

Эта статья рассматривает некоторые особенности средства label security в oracle. Здесь показана возможность секретить служебный столбец с метками доступа к строкам, а также рассмотрены некоторые правила правки меток. В первую очередь статья затрагивает использование параметра table_options процедуры apply_table_policy из пакета sa_policy_admin... подробнее

Кол. просмотров: общее - 3040 сегодня - 1

Простой журнал аудита на триггерах MySQL
07-03-2010   

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

Кол. просмотров: общее - 2924 сегодня - 1

Настройки mysql-server сразу после установки
07-03-2010   

Мой любимый вопрос, задаваемый DBA, которые хотят увеличить производительность MySQL: “какие параметры надо настраивать в первую очередь, сразу после установки сервера?”... подробнее

Кол. просмотров: общее - 2731 сегодня - 1

10+ способов обрушить mysql-сервер
07-03-2010   

Иногда у меня спрашивают о ошибках MySQL, (например таких), которые могут привести к обрушиванию mysql-сервера пользователем с обычными привелегиями. Потом звучит вопрос: “Что же делать в таких случаях? Как защититься от подобных ситуаций?”... подробнее

Кол. просмотров: общее - 8120 сегодня - 1



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects