Главная страница статей --> Хитрости при программировании php, заметки по базам данных

MySQL - это просто!

Источник: realcoding.net

Сначала ответим на вопрос - что такое MySQL? Это База Данных (БД), в которой структурировано хранятся данные. Следует второй вопрос - зачем отказываться от простых и удобных файлов к сложной БД? Потому что файлы, генерируемые каким либо скриптом на основе файловой БД (гостевые книги, CMS, форумы), постепенно начинают увеличиваться в размере, а так же их количество неуклонно растет. Поиск сильно затруднен. После преодоления некоторого порога (1000, 10000 файлов..) скрипт начинает жутко тормозить, и приходится подолгу ждать, когда он закончит свою работу. БД лишены этих недостатков - даже если в таблице будет миллион записей, поиск среди них будет идти доли секунды. Так уж они устроены, чтобы манипулировать огромным количеством данных. Но тут и возникает вопрос - а как работать с БД, в данном случае с MySQL? Эта статья как раз об этом.

Подключение к серверу.


Серверу MySQL, чтобы подключиться к нему, нужно передать 4 параметра:

  • Хост. Это серовер, на котором расположен сервер MySQL. В абсолютном большинстве хост равен localhost.
  • Имя пользователя. Имя пользователя, который может работать с этой таблицей. На локальных компьютерах по дефолту поставлен root. На хостинге - в зависимости от вас.
  • Пароль. Пароль выбранного пользователя. По умолчания равен пустой строке - .
  • Имя Базы данных. Имя БД, как вы ее назвали. По умолчанию - test.

Подключаться к серверу нужно с помощи команды:

$msconnect=mysql_connect(Хост, Пользователь, Пароль);

Выбирать конкретную Базу данных:

mysql_select_db(Имя базы данных, $msconnect);

Закрыть подключение нужно командой:

mysql_close($msconnect);

И соответственно полный пример подключения, выбирание нужной таблицы и закрытие подключеиния:

<?
$mshost = localhost; // Хост
$msuser = root; // Имя пользователя
$mspassword = ; // Пароль
$msname = test; // Имя базы данных

$msconnect = mysql_connect($mshost, $msuser, $mspassword);

mysql_select_db($msname, $msconnect);

mysql_close($msconnect);

?>

Создание таблиц. Заполнение информацией БД


Вот мы подключились к серверу MySQL и выбрали БД. Что дальше? Дальше нужно создать новую таблицу. Управления БД в MySQL управляется с помощью специального языка запросов SQL. Поначалу он кажется страшным, непонятным и сложным, но через некоторое время при активной работе с БД вы сможете легко читать самые сложные с виду SQL-запросы (сам так же путался в начале..). Начнем.

Передача SQL запроса БД. Для этого существует единственная команда:

mysql_query(SQL-запрос, подключенная БД);

Попробуем создать таблицу. Для этого передадим серверу такой SQL запрос:

mysql_query(CREATE TABLE имя_таблицы ( поле1 типполя1,
поле2 типполя2, поле3 типполя3),подключенная БД);

Можно создавать сколько угодно полей. Заместо ТипПоля1 пишется:

  • INT - целые числа
  • TEXT - текстовая информация

Это 2 основных типа поля. На самом деле их очень много, но перечислять их - займет лишком много места. Итак, разобрались с созданием таблиц. Пример использования:

mysql_query(CREATE TABLE test_zero ( num INT, title TEXT,
text TEXT),$msconnect);

Добавление информации в БД

Для этого существует та же команда, только другой SQL-запрос:

mysql_query(INSERT INTO название_таблицы VALUES (что засунуть в поле1,
еще что то в поле2,и напоследок в поле3), подключенная БД);

Думаю, здесь никаких сложностей не возникнет. Единственное, значения поля с типом TEXT вводить в одинарных кавычках. И, как всегда, пример:

mysql_query(INSERT INTO test_zero VALUES (1, Заголовок статьи,
Текст статьи), $msconnect);

Изменение информации в БД


Для этого используется такая команда:


mysql_query(UPDATE название_таблицы SET(поле1=значение1, поле2=значение2)
WHERE выражение, подключенная БД);

Такой командой мы обновляем записи, указанные в скобках, а данной таблице, если они подходят по какому либо условию (WHERE ...). Это мы рассмотри чуть позже. Сейчас - пример:

mysql_query(UPDATE test_zero SET(num=2, title=Заголовок 2)
WHERE num=1, $msconnect);

Теперь полностью - подключение, создание таблицы, заполнение информации, ее обновление и закрытие подключения:

<?

$mshost = localhost; // Хост
$msuser = root; // Имя пользователя
$mspassword = ; // Пароль
$msname = test; // Имя базы данных

$msconnect = mysql_connect($mshost, $msuser, $mspassword);

mysql_query(CREATE TABLE test_zero ( num INT, title TEXT,
text TEXT),$msconnect);
mysql_select_db($msname, $msconnect);

mysql_query(INSERT INTO test_zero VALUES (1, Заголовок статьи,
Текст статьи), $msconnect);

mysql_query(UPDATE test_zero SET(num=2, title=Заголовок 2)
WHERE num=1, $msconnect);
mysql_close($msconnect);

?>

В итоге у нас появится новая таблица test_zero, в которой будет одна запись.

Получение информации из БД.


Допустим, у нас большущая БД, в которой хранятся сотни записей. Как же эти записи получить? Очень просто:

$res=mysql_query(SELECT поле1, поле2, поле3 FROM имя_таблицы);
while($row=mysql_fetch_array($res))
{
$поле1=$row[поле1];
$поле2=$row[поле2];
$поле3=$row[поле3];
}

Командой SELECT мы получаем записи таблицы. Заместо строк поле1, поле2, поле3 может стоять знак *, который означает, что нужно читать все поля записей. Можно выбрать только одно поле, которое нужно. Это ускоряет работу БД. Что делает цикл while? Он означает, что пока в таблице есть записи, он будет помещать значения их полей в массив с помощью функции mysql_fetch_array, а как только записи кончатся, цикл остановится. Чтобы получить из массива данные, можно воспользоваться способом, который я указал в примере. Внутри цикла можно генерировать, к примеру, статьи, вытаскивая данные из БД. Вот пример:

$res=mysql_query(SELECT * FROM test_zero);

while($row=mysql_fetch_array($res))
{
$num=$row[num];
$title=$row[title];
$text=$row[text];

echo ($num) - $title <br><p align=justify>$text;
}

Условия получения информации из БД


Когда в таблице сотни записей, получать все не всегда целесообразно. Для этого вводят какое либо условие:

$res=mysql_query(SELECT * FROM имя_таблицы WHERE поле1 знак значение
ОПЕРАТОР поле2 знак значение);

Рассмотрим поподробнее строку поле1 знак значение. Поле1 - название поля, например title. Знак - логическое выражение, принимает значения:

  • = - равно
  • > - больше
  • < - меньше
  • != - не равно

lИх так же достаточно много, это основные.

ОПЕРАТОР - логический оператор:

  • AND - логическое и
  • OR - логическое или

Это так же основные.

Пример вытаскивания из таблицы записей, номер которых больше 10:

$res=mysql_query(SELECT span style=color: red;*/span FROM span style=color: black;test_zero/span WHERE span style=color: red;num/span > 10);

И, так сказать, итоговый пример применения БД:

<?
$mshost = localhost; // Хост
$msuser = root; // Имя пользователя
$mspassword = ; // Пароль
$msname = test; // Имя базы данных

$msconnect = mysql_connect($mshost, $msuser, $mspassword);

mysql_query(CREATE TABLE test_zero ( num INT, title TEXT,
text TEXT),$msconnect);
mysql_select_db($msname, $msconnect);

mysql_query(INSERT INTO test_zero VALUES (1, Заголовок статьи,
Текст статьи), $msconnect);

mysql_query(UPDATE test_zero SET(num=2, title=Заголовок 2)
WHERE num=1, $msconnect);
mysql_close($msconnect);

$res=mysql_query(SELECT * FROM test_zero);

while($row=mysql_fetch_array($res))
{
$num=$row[num];
$title=$row[title];
$text=$row[text];

echo ($num) - $title <br><p align=justify>$text;

}

?>

Ну вот и все! Конечно, это очень простой пример, но позволит вам научится простейшие работе с БД. На основе полученных знаний можно сделать гостевую книгу, скрипт выводящий новости, систему статистики и т.д.

Если бы мне попалась эта статья пораньше - я бы не стал ее писать. Когда я еще не знал MySQL, я перерыл статей 10. Достаточно быстро научился создавать таблицы и заполнять их. А вывести не получалось. Пришлось практически методом тыка учится. специально для этого я и написал эту статью.

P.S: На оформление этой статьи ушло примерно в три раза больше времени, чем на ее написания. При оформлении я более 50 раз перезагружал статью. Вот так то :).

Внимание!!! Данную статью можно перепечатывать только с указанием автора - Гиацинтов Андрей, а так же прямой ссылки на сайт автора - http://spryt.ru/. Перепечатка должна вестись в HTML коде, начиная от кода <!--Начало статьи--><style>.... и закачивая кодом </div></div><!--Конец статьи-->. Запрещено размещение данной статьи на форумах! Этот абзац так же должен быть указан!



Похожие статьи:
- Вызываем ветер (скрипты)
- 10 минут для SEO (search engine optimization)
- Защищаем контент сайта
- Генерация Flash на веб-сервере в PHP
- Проверка почтового адреса
- AJA - AJAX без XML
- SSI и общий стиль
- Отправка файлов аттачем
- Как через форму положить файл на сервер
- Поиграем с PHP - "Поле чудес"
- Модульное программирование на PHP или как написать маленький портал
- JavaScript Selections (работа с выделениями)
- Системы голосований на РНР


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |

Контакты
Редакция:
[0.001]