MySQL - это просто!Сначала ответим на вопрос - что такое MySQL? Это База Данных (БД), в которой структурировано хранятся данные. Следует второй вопрос - зачем отказываться от простых и удобных файлов к сложной БД? Потому что файлы, генерируемые каким либо скриптом на основе файловой БД (гостевые книги, CMS, форумы), постепенно начинают увеличиваться в размере, а так же их количество неуклонно растет. Поиск сильно затруднен. После преодоления некоторого порога (1000, 10000 файлов..) скрипт начинает жутко тормозить, и приходится подолгу ждать, когда он закончит свою работу. БД лишены этих недостатков - даже если в таблице будет миллион записей, поиск среди них будет идти доли секунды. Так уж они устроены, чтобы манипулировать огромным количеством данных. Но тут и возникает вопрос - а как работать с БД, в данном случае с MySQL? Эта статья как раз об этом.Подключение к серверу.Серверу MySQL, чтобы подключиться к нему, нужно передать 4 параметра:
Подключаться к серверу нужно с помощи команды: $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 пишется:
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". Знак - логическое выражение, принимает значения:
ОПЕРАТОР - логический оператор:
Пример вытаскивания из таблицы записей, номер которых больше 10:
$res=mysql_query("SELECT * FROM test_zero WHERE num > 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. Достаточно быстро научился создавать таблицы и заполнять их. А вывести не получалось. Пришлось практически методом тыка учится, специально для этого я и написал эту статью. Источник: spryt.ru |
КОНТАКТЫ
г. Екатеринбург info@vismech.ru |
текущее: НОВОСТИ 05.12.2013 - Уход за флэш-накопителем 05.12.2013 - Компьютер самопроизвольно выключается 05.12.2013 - Почему не запускается компьютер? 27.11.2013 - Canon Legria HF R406 - Описание видеокамеры 27.11.2013 - TravelMate P645 новый лэптоп бизнес-класса от Acer |