Mysql уроки


Что такое MySQL

MySQL — это один из типов реляционных баз данных. MySQL представляет собой сервер, к которому могут подключаться различные пользователи.

Вы когда к интернету подключаетесь, вы же вводите логин и пароль, а также имя сервера к которому подключаетесь? При работе с MySQL используется такая же система.

Ещё один момент: что такое реляционная база данных? Реляционная — значит основанная на таблицах. Знаменитый редактор электронных таблиц Excel от Microsoft фактически является редактором реляционных баз данных.

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

Для подключения к серверу MySQL в PHP используется функция mysqli_connect(). Данная функция получает три аргумента: имя сервера, имя пользователя и пароль.

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

Код подключения к серверу MySQL:

$link = mysqli_connect('localhost', "root", '');  

В данном случае я работаю на локальном компьютере на Denwere, поэтому имя хоста localhost, имя пользователя root, а пароля нет.

Соединение также нужно закрыть, после завершения работы с MySQL. Для закрытия соединения используется функция mysqli_close(). Расширяем пример:

$link = mysqli_connect('localhost', "root", ''); if ( !$link ) die("Error"); mysqli_close($link);

Тут мы проверели идентификатор подключения на истинность, если с нашим подключением что-то не так, то и программа выполняться не будет, функция die() остановит её выполнение и выведет в браузер сообщение об ошибке.

Ошибки подключения

Для проверки подключения используются следующие функции:

  • mysqli_connect_errno() — возвращает код ошибки последней попытки соединения. При отсутствие ошибок возвращает ноль.
  • mysqli_connect_error() — возвращает описание последней ошибки подключения к серверу MySQL.
define ('HOST',			"localhost"); define ('DB_USER',		"root"); define ('DB_PASSWORD',		""); define ('DB',			"tester");  $link = mysqli_connect( HOST, DB_USER, DB_PASSWORD, DB );  /* проверка соединения */ if ( mysqli_connect_errno() ) {  printf("Не удалось подключиться: %sn", mysqli_connect_error());  exit(); } else {  printf("Удалось подключиться: %sn", mysqli_get_host_info($link)); }  

Функция mysqli_get_host_info() возвращает строку, содержащую тип используемого соединения.

Также обратите внимание, при помощи команды define я все параметры подключения сохранил в константах. Когда вы будете писать большие проекты, и подключатся к серверу MySQL будут много файлов, то удобно хранить параметры соединения в отдельном файле и вставлять его при помощи функции include или require.

Выбор базы данных

На сервере MySQL может быть несколько баз данных. Первым делом нам нужно выбрать для работы нужную нам базу. В PHP для этого в функции mysqli_connect() есть ещё один параметр — имя базы данных.

Я создал у себя на компьютере через phpMyAdmin с именем tester. Подключаемся к ней:

$link = mysqli_connect('localhost', "root", '', 'tester'); if ( !$link ) die("Error"); mysql_close($link);

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

Создаём таблицу

В названии баз данных MySQL часть SQL обозначает Structured Query Language, что переводится как структурированный язык запросов. На языке SQL мы будем писать запросы и из программы PHP посылать их серверу MySQL.

Чтобы создать таблицу нам просто нужно указать команду CREATE TABLE


. Давайте создадим таблицу с именем users в столбцах которой будут храниться логины (столбец login) и пароли (столбец password) пользователей.

$query = 'CREATE TABLE users(  login VARCHAR(20),  password VARCHAR(20) )';

В этом коде мы присвоили переменной $query строку текста, которая представляет собой запрос SQL. Мы создаём таблицу с именем users, которая содержит два столбца login и password, у обоих тип данных VARCHAR(20). О типах данных мы поговорим позже, сейчас только отмечу, что VARCHAR(20) — это строка максимальной длины 20 символов.

Чтобы отправить наш запрос на сервер MySQL мы используем PHP функцию mysqli_query(). Эта функция возвращает положительное число, если операция прошла успешно и false, если произошла ошибка (синтаксис запроса ошибочный или у программы нет прав на выполнение запроса).

$link = mysqli_connect('localhost', "root", '', 'tester'); if ( !$link ) die("Error");  $query = 'CREATE TABLE users(  login VARCHAR(20),  password VARCHAR(20) )'; mysqli_query($query);  mysqli_close($link);

Запрос SQL не обязательно записывать в переменную, его можно сразу записать как аргумент функции mysql_query()


. Просто так код выллядит читабельней.

У этого скрипта есть один недостаток — он ничего не выводит в браузер. Давайте добавим сообщение:

$link = mysqli_connect('localhost', "root", '', 'tester'); if ( !$link ) die("Error");  $query = 'CREATE TABLE users(  login VARCHAR(20),  password VARCHAR(20) )';  if (mysqli_query($query)) echo "Таблица создана."; else echo "Таблица не создана.";  mysqli_close($link);

Если мы повторно запустим этот скрипт на выполнение, то увидим в браузере сообщение: «Таблица не создана». Дело в том, что таблица была создана при первом запуске, а повторно невозможно создать таблицу с таким же именем. Мы столкнулись с ситуацией возникновения ошибки, значит настало время поговорить об обработке ошибок при работе с MySQL.

Обработка ошибок

При отладке программы нам может понадобиться точная информация о ошибке. Когда в MySQL происходит ошибка, то сервер базы данных устанавливает номер ошибки и строку с её описанием. Для доступа к этим данным в PHP есть специальные функции.

  • mysqli_errno() — возвращает номер ошибки.
  • mysqli_error() — возвращает строку с описанием ошибки.

Теперь давайте добавим функцию mysql_error() в наш скрипт:

$link = mysql_connect('localhost', "root", '', 'tester'); if ( !$link ) die("Error");  $query = 'CREATE TABLE users(  login VARCHAR(20),  password VARCHAR(20) )';  if (mysqli_query($query)) echo "Таблица создана."; else echo "Таблица не создана: ".mysqli_error();  mysqli_close($link);  

Теперь наш скрипт вернёт в браузер строку: «Таблица не создана: Table ‘users’ already exists».

Удаление таблицы

Итак, мы сейчас имеем не нужную нам таблицу. Пришло время научиться удалять таблицы из базы данных.

Для удаления таблицы используется команда DROP TABLE, за которой следует имя таблицы.

$link = mysqli_connect('localhost', "root", '', 'tester'); if ( !$link ) die("Error");  $query = 'DROP TABLE users';  if ( !mysqli_query($query) ) echo "Ошибка при удалении таблицы: ".mysqli_error(); else echo "Таблица удалена.";  mysqli_close($link);

Итоги

Итак, мы освоили основы MySQL. Что мы научились делать:

  • Подключаться к базе данных MySQL при помощи функции mysqli_connect().
  • Закрывать соединение с сервером MySQL при помощи функции mysqli_close().
  • Отправлять SQL запросы серверу MySQL при помощи функции mysqli_query().
  • Мы узнали SQL запрос создания таблицы: create table.
  • Мы узнали SQL запрос удаления таблицы: drop table.
  • Мы узнали как обрабатывать ошибки при помощи функций mysqli_errno() и mysqli_error().

Теперь нужно идти дальше. В следующем уроке мы будем расширять наши знания в области запросов к MySQL. Мы научимся добавлять строки в таблицу, обновлять данные в уже существующих строках и проводить ещё некоторые операции.

Потом мы подробно рассмотрим типы данных MySQL.

Далее мы научимся извлекать данные из таблиц MySQL, это важный урок, но не спешите его читать, сначала освойте все предыдущие уроки.

Читаем следующий урок: запросы MySQL.

komotoz.ru

Как создать свой сайт? Уроки PHP и MySQL

Урок посвящен языку PHP и базе данных MySQL. Рассматривается взаимодействие PHP и MySQL, способы занесения данных из формы в базу данных и вывод данных из базы на web-страницу.

В данном уроке  PHP и MySQL Вам предстоит решить следующие задачи:

1. Создать базу данных, содержащую две таблицы: справочник пород кошек, таблицу сведений о потерявшихся животных.

2. Создать web-страницу, на которых будут размещена форма для подачи объявлений о потерявшихся кошках. Данные из этих объявлений заносятся в соответствующую таблицу сведений о потерявшихся животных.

3. Создать web-страницу, позволяющую просматривать информацию из базы данных. Данные в таблицы базы данных будут вноситься из объявлений, размещенных посетителями на сайте.

Задание № 1. Создание базы данных

Наши уроки PHP и MySQL начнем с создания базы данных.

Сначала необходимо создать таблицу-справочник пород и таблицу сведений о потерявшихся животных. Структура таблиц следующая:

Справочник пород

Таблица 1


Название поля Имя поля Тип поля Описание
идентификационный номер породы id Числовой
название породы name_por Символьный
характеристика породы describe_por Символьный В поле хранится имя файла, который содержит описание породы и фотографию.

Сведения о потерявшихся кошках

Таблица 2


Название поля Имя поля Тип поля Описание
идентификационный номер кошки id Числовой
порода por Символьный
дата нахождения кошки:
день
месяц
год
day
month
year
Символьный
Символьный
Символьный
место нахождения кошки place Символьный
пол кошки pol Символьный
возраст кошки age Символьный Если возможно указать примерный возраст
описание кошки outline Символьный Окрас, состояние здоровья и т. д.
координаты нашедшего contact Символьный Любая контактная информация: телефон, e-mail, адрес
дополнительная информация dop_info Символьный Например, кошка больна, есть клеймо, кормящая и пр.

В наших уроках PHP и MySQL рассмотрим два способа создания таблицы базы данных.

1. С помощью клиента MySQL.

2. Средствами PHP.

Способ 1. Создание базы данных с помощью клиента MySQL

Задание 1

С помощью клиентской программы MySQL — «phpMyAdmin» создадим таблицу Справочник пород (таблица 1).

1. Запустите Denwer ярлыком Start Denwer.

2. Запустите браузер и перейдите по ссылке http://localhost/. На открывшейся странице в разделе Утилиты запустите: phpMyAdmin — администрирование СУБД MySQL. Запустится программа phpMyAdmin (рис. 1).


Уроки PHP и MySQL

Рис. 1

3. Создайте новую базу данных. Для этого впишите в поле Создать базу данных имя базы catsdb, кодировку установите utf8_general_ci и нажмите кнопку Создать (рис. 2).

Mysql уроки

Рис. 2

4. Если все было выполнено верно, то будет выведено сообщение об удачном создании базы.

5. Перейдите в базу данных catsdb, нажав соответствующую строку в левой панели (рис. 3).

Mysql уроки

Рис. 3

6. Добавьте в базу данных таблицу Справочник пород, назовите ее: spravpor (структура таблицы и назначение полей приведены в таблице 1 Справочник пород). Для этого:

a. Внесите данные в поле Имя (имя таблицы — spravpor) и Количество столбцов (3), после чего нажмите кнопку ОК (рис. 4).

Уроки PHP и MySQL

Рис. 4

b. В открывшемся окне заполните данные по структуре таблицы (рис. 5).

Mysql уроки

Рис. 5

c. После заполнения всех полей нажмите Сохранить. Перейдите в таблицу spravpor, нажав соответствующую строку в левой панели (рис. 6).


Mysql уроки

Рис. 6

d. Откроется сама таблица (рис. 7).

Mysql уроки

Рис. 7

Способ 2. Создание базы данных средствами PHP

В данном уроке PHP и MySQL создадим таблицу с помощью сценария PHP, но при этом база данных должна уже быть создана! В листинге 1 приведена программа создания таблицы под именем species средствами PHP. Структура таблицы species аналогична структуре таблицы spravpor.

Задание 2

1. Проанализируйте приведенные в листинге 1 PHP-сценарий и комментарии к нему в файле species.php.

2. Реализуйте код из листинга 1. Для этого:

  • скопируйте его в Notepad++
  • преобразуйте кодировку файла в utf-8 командой Кодировка – Преобразовать в UTF-8
  • сохраните в папку localhost/www под именем species.php
  • запустите файл, набрав в адресной строке localhost/species.php
  • появится сообщение, что таблица успешно создана (рис. 8).

Mysql уроки

Рис. 8

3. После выполнения сценария убедитесь, что таблица species создана в базе данных catsdb (рис. 9, 10).

Mysql уроки

Рис. 9

Mysql уроки

Рис. 10

Листинг 1. Создание таблицы с помощью сценария PHP (файл species.php)

<?php  /*Определяем параметры соединения.  В случае удаленного доступа к серверу баз данных адрес хоста (переменная $host),  имя базы данных (переменная $db) и ваше пользовательское имя (переменная $user)  уточните у преподавателя.  В случае использования локального сервера переменная  $host имеет значение 127.0.0.1 или "localhost". */    $host="localhost";  $user="root";  $pass="";  $db="catsdb";    //Соединяемся с сервером  mysql_connect ($host, $user, $pass);    //Выбираем БД  mysql_select_db ($db);    //Формируем запрос на создание таблицы, по структуре аналогичной справочнику пород  $query="CREATE TABLE species (id INT(4) NOT NULL auto_increment primary key, name_por VARCHAR(20) NOT NULL, describe_por VARCHAR(100) NOT NULL)";    //Выполняем запрос  $result=mysql_query ($query);    if ($result == true)   print ("Таблица базы данных успешно создана"); //Печать сообщения  else   print ("Запрос не выполнен");    //Закрываем соединение  mysql_close();  ?>  


Комментарии к листингу 1:

1. Здесь адрес сервера MySQL — localhost (такой адрес указывается в случае если работа с базой данных ведется на локальном компьютере или компьютере где располагаются файлы с php-сценариями).

2. Программа на языке PHP обычно вставляется в HTML-текст. Поэтому предусмотрены специальные теги для отделения PHP-текста от HTML <?php и ?>.

3. Если PHP-сценарий представляет собой самостоятельный модуль (как в листинге 1), он также должен начинаться с конструкции <?php и заканчиваться конструкцией ?>.

4. Любой файл, содержащий PHP-сценарий, имеет расширение php, независимо от того, встроен сценарий в HTML-текст или полностью написан на PHP.

5. Многострочные комментарии должны начинаться с символов /* и завершаться символами*/. Однострочные комментарии предваряются символами //. Закрывать их не нужно.

6. В языке PHP имя переменной начинается со знака доллара ($), за которым следует собственно имя переменной. В именах переменных различаются верхний и нижний регистры. Имя переменной должно начинаться с буквы или символа подчеркивания, за которыми могут следовать буквы, цифры или знаки подчеркивания. Буквы должны быть из диапазона A—Z.

7. В конце каждого оператора php обязательно ставится точка с запятой.

8. Функции для работы с MySQL имеют префикс mysql_ (см. приложение 2).

Задание 3

В нашем уроке PHP и MySQL, используя программу из листинга 1 в качестве образца, напишите сценарий PHP для создания таблицы сведений о потерявшихся кошках (см. таблицу 2). Таблицу назовите catspotery, а файл сценария catspotery.php. Результат на рис. 11, 12

Mysql уроки

Рис. 11

Mysql уроки

Рис. 12

Добавление записи в базу данных

Мы подготовили таблицы базы данных. Сейчас на web-странице разместим форму подачи объявлений для тех, кто потерял кошку. Задача — обеспечить занесение информации из форм в соответствующие таблицы базы данных.

Примерный вид формы представлен на рис. 13.

Mysql уроки

Рис. 13

Задание 4

При выполнениии данного урока PHP и MySQL создайте web-страницу с формой, как на рис. 13. Сохраните под именем forma_cats.html. В качестве файл-обработчика укажите poter_dobavl.php. Не забывайте о корреляции полей формы и полей соответствующей таблицы в базе данных и кодировка файла должна быть в utf-8 (Кодировка – Преобразовать в UTF-8).

Данные, введенные посетителем, заносятся в соответствующую таблицу базы данных. Имя PHP-сценария, отвечающего за эту операцию, указывается в атрибуте action тега <form>. В листинге 2 приведен код PHP-сценария, осуществляющего подключение к серверу MySQL, выбор базы данных, запрос к базе данных. В данном случае это запрос INSERT, который вставляет данные из формы в базу данных.

Задание 5

1. Используя программу из листинга 2 в качестве образца, напишите PHP-сценарии, осуществляющие вставку записей в таблицы сведений о пропавших кошках.

2. Проверьте работоспособность формы. В базу данных (рис. 14) должна сохраняться информация, введенная в форму (рис. 13).

3. Наполните базу 5-ю записями.

Листинг 2. Занесение данных формы в базу данных (файл poter_dobavl.php)

<?php  //Создание коротких переменных  $por=$_POST['por'];  $day=$_POST['day'];  $month=$_POST['month'];  $year=$_POST['year'];  $place=$_POST['place'];  $pol=$_POST['pol'];  $age=$_POST['age'];  $outline=$_POST['outline'];  $contact=$_POST['contact'];  $dop_info=$_POST['dop_info'];    $hostname="localhost";  $username="root";  $dbname="catsdb";  $pass="";  $usertable="catspotery";    mysql_connect ($hostname, $username, $pass);  mysql_select_db ($dbname);    $query="insert into $usertable (por, day, month, year, place, pol, age, outline, contact, dop_info) values ('$por', '$day', '$month', '$year', '$place', '$pol', '$age', '$outline', '$contact', '$dop_info')";    $result=mysql_query ($query);    if ($result == true)  print ("Данные занесены"); //Печать сообщения  else  print ("Данные не занесены");  mysql_close();  ?>  

Mysql уроки

Рис. 14

Извлечение записей из базы данных

В нашем уроке PHP и MySQL Вы реализовали технологию заполнения базы данных. 

Теперь необходимо реализовать задачу вывода информации из базы данных. Т.е. необходимо представить на сайте информацию из базы данных в следующем виде:

Mysql уроки

Рис. 15

Код сценария, представленный в листинге 3, выводит информацию из базы данных на web-страницу, в соответствии с рисунком 15.

Листинг 3. Вывод информации из базы данных на Web-страницу. Передача параметров (файл vivod_poter.php)

<?php  /*Определяем переменные для хранения адреса хоста, названия базы данных, таблицы базы данных, имени и пароля пользователя  */  $hostname="localhost";  $username="root";  $usertable="catspotery";  $dbname="catsdb";  $password="";    //Соединяемся с базой данных  mysql_connect($hostname, $username, $password);  mysql_select_db($dbname);    //Формируем текст запроса  $query="select id, por, day, month, year, place, pol, age, outline, contact, dop_info from $usertable";    //Выполняем запрос с сохранением идентификатора результата  $result=mysql_query($query);    //Печатаем шапку таблицы  print ("<p align=center><font face=verdana><b>Найденные</b>  <table border=1 align=center width=90% cellpadding=5>  <tr bgcolor=#ffffcc>  <td>Порода</td>  <td>Дата находки</td>  <td>Район</td>  <td>Пол</td>  <td>Возраст</td>  <td>Приметы</td>  <td>Контакты</td>  <td>Дополнительная информация</td>  </tr>");    //Печатаем содержимое таблицы  while ($a=mysql_fetch_array($result))  {  $id=$a['id'];  $poroda=$a['por'];  $dat_day=$a['day'];  $dat_month=$a['month'];  $dat_year=$a['year'];  $place_find=$a['place'];  $pol_por=$a['pol'];  $age_por=$a['age'];  $outline_por=$a['outline'];  $contact_por=$a['contact'];  $dop_info=$a['dop_info'];    print ("<tr>  <td>$poroda</td>  <td>$dat_day $dat_month $dat_year</td>  <td>$place_find</td>  <td>$pol_por</td>  <td>$age_por</td>  <td>$outline_por</td>  <td>$contact_por</td>  <td>$dop_info</td>  </tr>");  }  print ("</table>");    //Закрываем соединение  mysql_close();  ?>  

Задание 6

Изучите код сценария из листинга 3 и реализуйте его. Проверьте работоспособность сценария.

Задание 7

Реализуйте возможность работы со справочником пород spravpor. Для этого:

1. Добавьте к созданной таблице поле foto, в котором будет храниться ссылка на фотографию породы.

2. Используя запросы SQL (рис. 16), заполните базу 3-мя записями про породы кошек (длинношерстные, полудлинношерстные, короткошерстные) (рис. 17). Все необходимые материалы находятся в папке cats.

3. Реализуйте web-страницу, на которую выводятся данные из справочника пород. У каждой породы должна быть фотография.

4. Если скрипт обрезает описание породы, увеличьте длину поля describe_por, чтобы можно было вводить длинные описания.

5. Примерный результат на рисунке 18.

Mysql уроки

Рис. 16

Mysql уроки

Рис. 17

Mysql уроки

Рис. 18

web-grafika.pro

СУБД MySQL является основной при работе с базами данных. И освоить её придётся каждому, кто хочет использовать у себя на сайте базы данных.

А использовать реляционные базы данных придётся, если Ваш сайт поддерживает хотя бы регистрацию пользователей. Я уже молчу о других возможностях, которые они открывают. Поэтому Вы вряд ли сможете обойтись без баз данных, а для того, чтобы научиться использовать их через MySQL, я предлагаю Вам ознакомиться с материалами в этой категории.

Как я уже писал в разделе MySQL, мы будем использовать MySQL в PHP, хотя, освоив работу в PHP, Вы без проблем сможете подстроиться и под другой язык (например, Java), так как принципы одни и те же, и разница лишь в синтаксисе языков. Но это на будущее, а пока необходимо научиться использовать данное программное обеспечение в PHP. Разумеется, Вам потребуются знания по написанию скриптов на языке PHP, поэтому если Вы ещё не умеете этого делать, то сначала научитесь работать с этим языком, и только потом переходите сюда.

Если же Вы уже умеете писать несложные (или, может быть, уже сложные) скрипты на PHP, то тогда добро пожаловать в завершающую стадию, где Вы получите последние необходимые знания, и дальше сможете уже двигаться самостоятельно.

Полный курс по PHP и MySQL: http://srs.myrusakov.ru/php

Прочитав статьи по основам MySQL, Вы узнаете:

1) Какая разница между SQL и MySQL.

2) О структуре базы данных.

3) Какие типы полей имеются в MySQL.

4) Какие привилегии у пользователей в MySQL.

5) Какие возможности есть у ПО PHPMyAdmin.

6) Как управлять пользователями в PHPMyAdmin.

7) Как управлять базами данных в PHPMyAdmin.

8) Как управлять таблицами в PHPMyAdmin.

9) Как управлять записями в PHPMyAdmin.

10) Об индексах в MySQL.

11) Как подключиться к базе данных через PHP.

12) Как отправить запрос к базе данных в PHP.

13) Как импортировать базу данных через PHPMyAdmin.

14) Как узнать синтаксис SQL-запроса через PHPMyAdmin.

15) Как конвертировать CSV в SQL.

16) Как сделать регистрозависимый поиск для MySQL.

17) Как исправить ошибку max user connections в MySQL.

18) Как оптимизировать запросы к MySQL.

19) Как руссифицировать PHPMyAdmin в Denwer.

20) Как узнать последний ID в MySQL.

21) Как импортировать базы данных больших размеров.

22) Что такое репликация в MySQL.

23) Как правильно создавать структуру базы данных.

24) Стоит ли хранить изображения в базе данных.

25) Как создать триггер в MySQL.

26) Как исправить ошибку server has gone away.

27) Как нормализовать базу данных.

28) Какой движок для базы данных выбрать.

myrusakov.ru

Урок 16. MySQL и PHP.

Человек живет только для того, чтобы учиться…
Карлос Кастанеда. Учение Дона Хуана.

Итак, на прошлом уроке мы познакомились с базой данных MySQL и рассмотрели использование некоторых ее операторов. Теперь же настало время применить полученные знания в программировании на PHP, и на сегодняшнем уроке мы рассмотрим взаимодействие MySQL с этим языком вебпрограммирования.

Соединение с MySQL.

Прежде, чем начать работу с базой данных, необходимо создать соединение с сервером MySQL. Этим и занимается функция mysql_connect(). Она должна быть вызвана до каких-либо других функций работы с MySQL, в противном случае они возвратят ошибки.

Аналогом функции mysql_connect является функция mysql_pconnect. Их отличие состоит в том, что последняя открывает постоянное соединение с MySQL, благодаря чему снижаются расходы времени и ресурсов на создание новых соединений. Это постоянное соединение не уничтожается ни функцией закрытия соединения, ни каким-либо другим образом. Использование этой функции требуется в случае, если вашему веб-приложению приходится часто обращаться к MySQL. Но учтите, что mysql_pconnect работает только на сервере, где PHP установлен как модуль.

Выбор или создание базы данных.

Вторым шагом при работе с MySQL чаще всего становится выбор базы данных для дальнейшей работы, либо создание новой базы данных.

Создание базы данных осуществляет функция mysql_create_db().

mysql_create_db(имя базы данных, [идентификатор соединения]);

Имя базы данных может состоять из любых символов, используемых для задания имени директорий на сервере, исключая символы ‘/’, », ‘.‘.

Идентификатор соединения есть результат выполнения функции mysql_connect или mysql_pconnect.

Для дальшейшей работы с базой данных вы должны ее выбрать. Выбор базы данных осуществляется функцией mysql_select_db(). Ее синтаксис выглядит следующим образом:

mysql_select_db(имя базы данных, [идентификатор соединения]);

Запросы в MySQL.

Пожалуй, самая универсальная функция для работы с MySQL — mysql_query(). Она может заменить практически любую функцию работы с базами данных MySQL, исключая mysql_connect() и mysql_close().

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

Например, с помощью нее мы можем создать базу данных, не используя вышерассмотренную функцию mysql_create_db().

$link = mysql_connect(‘somehost.ru’, ‘artem’, ‘123456’) or die(«Не могу соединиться»);
mysql_query(«CREATE database my_db», $link) or die(«Ошибка запроса»);

Предположим, мы хотим ввести данные в базу данных, созданную на прошлом уроке.

$link = mysql_connect(‘somehost.ru’, ‘artem’, ‘123456’) or die(«Не могу соединиться»);
mysql_select_db(‘myphp’, $link);
$query = «INSERT INTO lessons (title, body) VALUES (
‘Выражаемся по-ПиЭйчПовски’,
‘Итак, на прошлом уроке я обещал начать урок 3 с изучения следующего, четвертого типа данных…’
)»;
mysql_query($query, $link);

А теперь давайте выберем данные, которые ввели на этом и прошлом уроке. Это делается следующим образом:

// предположим, что уже соединились с MySQL
// и выбрали базу данных ‘myphp’
$query = «SELECT title, body FROM lessons»;
$result = mysql_query($query, $link);
while ($row = mysql_fetch_array($result)) {
    echo «<h1>».$row[‘title’].»</h1><p>»;
    echo $row[‘body’].»</p>»;
}

Заметьте, что mysql_query возвращает не сам результат, а идентификатор результата, который может быть использован другими функциями. Таким образом, $result в примере выше не содержим необходимую нам информацию в явном виде, его значение — лишь ссылка на нее.

Извлечение информации.

Чтобы извлечь информацию в понятную нам форму, необходимо воспользоваться функциями mysql_fetch_array(), mysql_fetch_row() или другими более специфическими функциями.

Функция mysql_fetch_array(), использованная в примере выше, осуществляет выборку записи в виде ассоциативного массива. Заметьте, эта функция, как и другие функции извлечения информации, не работает непосредственно с MySQL, а лишь обрабатывает полученный результат, поэтому ссылка на идентификатор соединения для работы этой функцией не требуется. Ее обязательный аргумент — лишь идентификатор результата, полученный функцией mysql_query().

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

$result = mysql_query(«SELECT id, title FROM lessons», $link);
$first_row = mysql_fetch_array($result);
echo «Первая запись:<br>».$first_row[‘id’].» — «.$first_row[‘title’].»<br>»;
echo «Остальные записи:<br>»;
while ($row = mysql_fetch_array($result)) {
    echo $row[‘id’].» — «.$row[‘title’].'<br>’;
}

Данный пример может вывести у вас непонятные символы — текст в неизвестной кодировке. Это связано с тем, что MySQL использует по умолчанию кодировку latin, тогда как отображение данных происходит на веб-странице с кодировкой, скорее всего, windows-1251. Тем самым, данные введенные посредством одной кодировки и показанные — другой, превращаются в абракадабру. Но если вы будете вводить данные через веб-интерфейс и выводить через него же, то «смешения» кодировок не произойдет, и текст будет выводиться в нормальном виде.

Функция mysql_fetch_row() аналогична вышерассмотренной функции, за исключением того, что она возвращает пронумерованный массив, а не ассоциативный.

В случае, когда идентификатор результата содержит значения небольшого количества полей, или, что еще лучше, одного, то тогда становится удобным размещать данные не в массиве, а в отдельных переменных. Этим и занимается функция mysql_result(). Она имеет несколько более сложный синтаксис, чем mysql_fetch_array, поэтому рассмотрим его подробнее:

mysql_result(идентификатор результата, номер записи, [поле]);

Номер записи — это номер строки, из которой требуется получить данные. Поле — это название или номер поля указанной записи, из которой необходимо получить данные.

$result = mysql_query(«SELECT title FROM lessons», $link);
$title1 = mysql_result($result, 0);
$title2 = mysql_result($result, 1);

Так как мы сделали выборку только по одному полю, то третий аргумент функции mysql_result() необязателен.

Закрытие соединения с MySQL.

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

Закрытие соединения осуществляется с помощью функции mysql_close().

В заключение.

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

На этом и закончим наш урок. До встречи.

Назад, на урок 15

Дальше, на урок 17

 

www.poiu.ru

В этой статье я хочу рассказать о работе с базами данных с помощью php.

База данных — это специальная программа для обработки больших массивов однотипных данных. На мой взгляд — одна из лучших баз данных — это MySQL.

К тому же она специально предназначена для работы в интернете и её поддерживают практические все сервера. Я не рекомендую вручную создавать в нем базы данных. Для этого существуют специальные программы, очень упрощающие работу с MySQL. Например я пользуюсь программой MySQL-Front.

Итак вы установили себе MySQL и MySQL-Front. Что же дальше? А дальше запускаем MySQL-Front, коннектимся с сервером MySQL и создаем новую базу данных. Например, я создал базу данных под названием product и в этой базе создал таблицу под названием tovars со следующими столбцами:

  1. inc -это ключевое поле или код, т.е. поле, значение которого уникально и нигде во всей базе не повторяется. Я это сделал с помощью того, что это поле у меня автоинкремент, т.е. при вводе новой строки в базу текущее значение этого поля равно значение предыдущего поля этого столбца плюс 1. Тип этого поля: Bigint -не скоро мы переберем все возможные значения.
  2. naim — в этом столбце мы указываем название товара. Тип поля: varchar(20) — т.е. строка не более 20 символов.
  3. cena -в этом столбце мы указываем цену товара. Тип поля: float -т.е. число с плавающей точкой.
  4. kol -это количество товара. Тип поля: int -целый тип.
  5. srok — это срок годности продукта. И тип этого поля: date — т.е. дата.

Итак наша база создана. Ещё я хотел бы сказать, что для совсем начинающих людей наверно это все не совсем понятно. И я им бы посоветовал ещё почитать общую теорию по базам данных и прочитать про язык SQL.

Итак мы создали базу данных и теперь мы можем с ней работать при помощи php. Для работы с MySQL нам потребуются следующие функции:

int mysql_connect(string hostname, string username, string password) — создать соединение с MySQL.

Параметры:

  • hostname – имя хоста, на котором находится база данных.
  • Username – имя пользователя.
  • Password – пароль пользователя.

Функция возвращает параметр типа int, который больше 0, если соединение прошло успешно, и равен 0 в противном случае.

int mysql_select_db(string database_name, int link_identifier) — выбрать базу данных для работы.

Параметры:

Database_name – имя базы данных.

link_identifier – ID соединения, которое получено в функции mysql_connect. (параметр необязательный, если он не указывается, то используется ID от последнего вызова mysql_connect)

Функция возвращает значение true или false

int mysql_query(string query, int link_identifier)

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

Параметры:

query – строка, содержащая запрос link_identifier – см. предыдущую функцию.

Функция возвращает ID результата или 0, если произошла ошибка.

int mysql_result(int result, int i, column);

Функция возвращает значение поля в столбце column и в строке i.

int mysql_close(int link_identifier) — функция закрывает соединение с MySQL.

Параметры:

link_identifier – см. выше.

Функция возвращает значение true или false.

Конечно это не все функции php, которые используются при работе с MySQL. Об остальных расскажу попозже.

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

<html>
<HEAD>
<META http-equiv=content-type content=»text/html; charset=windows-1251″>
<style>
.t2{ FONT-SIZE: 14px; color: black; FONT-FAMILY: Verdana, Helvetica, Arial; display:block; text-align: right;}
.t{ FONT-SIZE: 14px; color: red; FONT-FAMILY: Verdana, Helvetica, Arial; }
</style>
</HEAD>
<body >
<br><br><br><br><br><br><br>
<form action=»lesson2.php» method=»post» name=»frt» >
<table align=»center»>
<tr><td class=»t2″>введите название продукта</td>
<td> <input type=»text» size=»20″ maxlength=»20″ name=»prod» id=»prod» value=»<?php echo $_POST[«prod»] ?>»></td></tr>
<tr><td class=»t2″>введите цену</td>
<td> <input type=»text» size=»10″ maxlength=»10″ name=»cena» id=»cena» value=»<?php echo $_POST[«cena»]?>»></td></tr>
<tr><td class=»t2″>введите колличество</td>
<td> <input type=»text» size=»11″ maxlength=»11″ name=»kol» id=»kol» value=»<?php echo $_POST[«kol»]?>»></td></tr>
<tr><td class=»t2″>введите срок годности(dd.mm.yyyy)</td>
<td> <input type=»text» size=»10″ maxlength=»10″ name=»srok» id=»srok» value=»<?php echo $_POST[«srok»]?>»></td></tr>
<tr><td colspan=»2″ align=»center»><input type=»submit»; name=»vvod»; value=»ввести»; ></td></tr>
</table>
</body>
</html>

вот, что у нас получится:

Mysql уроки

затем нам надо скрипт php, который будет проверять корректность ввода данных и в правильном формате вводит эти данные в базу данных. Окончательный текст файла будет такой:

<?php
if($_POST[«prod»])
{
$error=»ошибка:»;
$prod=$_POST[«prod»];
$cena=$_POST[«cena»];
$srok=$_POST[«srok»];
$kol=$_POST[«kol»];
if(strcmp((float)$cena,$cena))
{$error.=»вы строке цена вводятся только цифры<br>»;
}
if(strcmp((int)$kol,$kol))
{$error.=»вы строке колличество вводятся только цифры<br>»;
}
if(!preg_match_all(«/(d{1,2}).(d{1,2}).(d{4})/»,$srok,$i))
{$error.=»неверный формат строки: срок годности<br>»;
}
$day=$i[1][0];
$month=$i[2][0];
$year=$i[3][0];
if(!checkdate($month,$day,$year))
{$error.=»вы неверно ввели срок годности<br>»;
}
if($error!=»ошибка:»)
{print «<center class=»t»>$error</center> «;
}
else
{
$srok=$year.»-«.$month.»-«.$day;
$link = mysql_connect(«localhost», «root»,»») or die(«Could not connect»);
mysql_select_db(«product») or die(«Could not select database»);
$sql = «INSERT INTO tovars ( naim, cena, kol, srok) VALUES (‘$prod’, ‘$cena’,’$kol’,’$srok’ )»;

$result = mysql_query($sql) or die(«Query failed»);;
mysql_close($link);
Header(«Location: uspex.php?i=1»);
}
}
?>
<html>
<HEAD>
<META http-equiv=content-type content=»text/html; charset=windows-1251″>
<style>
.t2{ FONT-SIZE: 14px; color: black; FONT-FAMILY: Verdana, Helvetica, Arial; display:block; text-align: right;}
.t{ FONT-SIZE: 14px; color: red; FONT-FAMILY: Verdana, Helvetica, Arial; }
</style>
</HEAD>
<body >
<br><br><br><br><br><br><br>
<form action=»lesson2.php» method=»post» name=»frt» >
<table align=»center»>
<tr><td class=»t2″>введите название продукта</td>
<td> <input type=»text» size=»20″ maxlength=»20″ name=»prod» id=»prod» value=»<?php echo $_POST[«prod»] ?>»></td></tr>
<tr><td class=»t2″>введите цену</td>
<td> <input type=»text» size=»10″ maxlength=»10″ name=»cena» id=»cena» value=»<?php echo $_POST[«cena»]?>»></td></tr>
<tr><td class=»t2″>введите колличество</td>
<td> <input type=»text» size=»11″ maxlength=»11″ name=»kol» id=»kol» value=»<?php echo $_POST[«kol»]?>»></td></tr>
<tr><td class=»t2″>введите срок годности(dd.mm.yyyy)</td>
<td> <input type=»text» size=»10″ maxlength=»10″ name=»srok» id=»srok» value=»<?php echo $_POST[«srok»]?>»></td></tr>
<tr><td colspan=»2″ align=»center»><input type=»submit»; name=»vvod»; value=»ввести»; ></td></tr>
</table>
</body>
</html>

подробно поясню, что там происходит. Вначале идет условие: if($_POST[«prod»]) — это проверка того, что перед нажатием кнопки ввести человек заполнил форму и мы можем вводить данные в базу. Далее идет оператор: if(strcmp((float)$cena,$cena)) — здесь идет проверка того, что в поле цена введено число. Оператор (float)$cena приводит переменную $cena к типу float, а затем мы сравниваем приведенное значение и значение, которое ввели и если оказывается равенство, значит ввели число. Оператор strcmp возвращает разность кодов первых не совпадающих символов двух строк.

Следующий непонятный оператор в программе

preg_match_all(«/(d{1,2}).(d{1,2}).(d{4})/»,$srok,$i).

Этот оператор проверяет правильность введенного формата даты. Т.е. сначала должны идти одна или 2 цифры, затем точка, затем ещё одна или две цифры, затем ещё одна точка, а затем ещё 4 цифры. Здесь используется регулярное выражение и, о них я расскажу в одном из следующих уроков.

Функция preg_match_all также разбивает введенную дату на день, месяц, год и записывает в двумерный массив $i. Функция checkdate($month,$day,$year) вообще очень простая — она проверяет, чтобы значения $month, $day, $year были в нужном диапазоне, т.е. день не может быть больше 31 и т.д. Далее в программе мы переменную $srok, приводим к тому же формату, который используется в базе данных. Далее мы связываемся с MySQL и с нашей базой данных. Потом создаем SQL-запрос для ввода данных и выполняем его. Следующая функция: mysql_close($link) приводит к тому, что разрывается соединение с базой данных.

Функция Header(«Location: uspex.php?i=1») изменяет заголовок нашей страницы и после этой функции начинает выполняться скрипт, записанный в файле uspex.php. В этот файл мы передаем значение i=1, которое обрабатывается в скрипте и программа понимает, что мы удачно завершили ввод данных в базу данных.

Вот текст файла: uspex.php

<html>
<HEAD>
<LINK href=»main.css» type=text/css rel=stylesheet>
<META http-equiv=content-type content=»text/html; charset=windows-1251″>
</HEAD>
<body >
<?php
$i=0;
$i=$_GET[«i»];
if($i==1)
{$st=»данные успешно добавлены»;
}
if($i==2)
{$st=»записи успешно удалены»;
}
if($i==3)
{$st=»записи успешно обновлены»;
}
?>
<table border=0 width=100% >
<tr align=center>
<td>
<br><br><br><br><br><br><br><br>
<H4 class=»big»><?php echo $st ?></H4>
</td>
</tr>
</table>
</body>
</html>

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

Mysql уроки

Итак, данные успешно добавлены, и пора завершать первую часть этого урока.

(Ю. Гришин)

www.dikarka.ru

MySQL для начинающих

От автора: вас обозвали чайником? Ну, это дело поправимое! Каждый самовар когда-то был чайником! Или каждый профессионал был когда-то самоваром? Нет, опять что-то не то! В общем, MySQL для начинающих.

Зачем чайникам MySQL

Если вы всерьез собрались связать свою жизнь с интернетом, то сразу на первых же шагах в «паутине» столкнетесь с этой СУБД. MySQL можно смело назвать «всея интернетной» системой управления базами данных. Без нее не обходится ни один более-менее серьезный ресурса, она присутствует в админке каждого хостинга. И большая часть всех популярных CMS и даже «самопальных» движков построены с ее участием.

В общем, без этой платформы вам никак не обойтись. Но для ее изучения также понадобятся правильный подход, правильные инструменты, а главное желание и терпение. Надеюсь, последних составляющих, у вас в достатке. И будьте готовы к тому, что ваши мозги закипят, а из головы повалит пар, как из настоящего чайника :)

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

Основные понятия

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

Думаю, для начала теоретических знаний нам достаточно. Недостающие пробелы в теории мы «раскрасим» практикой. Теперь осталось выбрать правильный программный инструмент.

Подбор правильного инструмента

Изрядно «порывшись» во всем ассортименте оболочек MySQL для начинающих, понял, что таких просто не существует. Все программные продукты для администрирования СУБД требуют наличия уже установленного сервера БД. В общем, решил в очередной раз не изобретать «самокат», и остановил свой выбор на отечественном пакете Denwer. Скачать его можно на официальном сайте.

Mysql уроки

В его состав уже входят все составляющие СУБД, позволяющие новичку сразу после несложной и понятной установки приступить к практическому знакомству с MySQL. Кроме этого Denwer включает в себя еще несколько необходимых для начинающего разработчика инструментов: локальный сервер, PHP.

Первые шаги

Не буду описывать процесс инсталляции «джентльменского» набора, поскольку там все происходит автоматически. После запуска инсталяхи успевай только нужные клавиши жать. Как раз то, что нужно в варианте MySQL для чайников :) .

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

Mysql уроки

На странице «Ура, заработало!» перейдите по одной из указанных на снимке ссылок. После чего вы попадете в phpMyAdmin – оболочку для администрирования баз данных.

Перейдя по ссылке http://downloads.mysql.com/docs/world.sql.zip, вы скачаете пример тестовой БД с официального сайта MySQL. Опять перейдите в phpMyAdmin, в основном меню сверху зайдите во вкладку «Импорт». В окне «Импорт на текущий» в первом разделе («Импортируемый файл») установите значение «Обзор вашего компьютера».

Mysql уроки

В окне проводника выберите архив со скачанным примером БД. Внизу основного окна не забудьте нажать «Ок».

Советую пока не изменять указанные значения параметров. Это может привести к некорректному отображению данных импортируемого источника. Если система phpMyAdmin выдала ошибку, что не может распознать алгоритм сжатия БД, тогда разархивируйте ее и повторите весь процесс импорта сначала.

Если все прошло хорошо, то вверху появится сообщение программы, что импорт выполнен успешно, а слева в списке БД — еще одна (word).

Mysql уроки

Рассмотрим ее структуру изнутри, чтобы вы смогли более наглядно представить, с чем вам придется иметь дело.

Нажмите на название БД MySQL для начинающих. Под ней отобразится список таблиц, из которых она состоит. Кликните по одной из них. Затем перейдите в пункт верхнего меню «Структура». В основной рабочей зоне отобразится структура таблицы: имена всех столбцов, типы данных и все атрибуты.

Mysql уроки

Перейдя на вкладку «Обзор», вы увидите содержимое таблицы, которые образуются значениями всех ее столбцов.

Mysql уроки

Теперь, если вас кто-то назовет «чайником», не обращайте внимания, поскольку вы стали на правильный путь обучения. И у вас есть все «правильные» средства, чтобы стать настоящим профессионалом: «правильная» оболочка для MySQL, знание основной структуры и тестовая БД. И все это в совокупности сможет значительно снизить температуру кипения вашего «котелка», от которого не застрахован ни обычный «чайник» ни «тертый калач» профессионал. До следующего «кипения» :)

Mysql уроки

webformyself.com


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.