Работа с 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
|