Изучаем PHP и MySQL правильно. Язык PHP и работа с базой данных MySQL Mysql обучение онлайн

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

Данный материал — продолжение .

MySQL начало работы и импорт данных

mysql -h host -u user -p

Enter password: ********

Также можно вводить пароль сразу

mysql -h host -u user -pPASSWORD

Между ключем -p и самим паролем при этом не должно быть пробела, иначе пароль будет воспринят как имя базы данных. Этот вариант плох тем, что пароль останется в history и его можно будет посмотреть в дальнейшем.

Основы работы с MySQL

Любой запрос (за исключением USE , QUIT и еще нескольких) должен завершаться точкой с запятой. Запрос может быть разнесен на несколько строк и будет выполнен только после введения точки с запятой

SELECT
-> *
-> FROM
-> gebwoocommerce_api_keys
-> ;
Empty set (0.01 sec)

MariaDB >

От выполнения запроса можно отказаться после введения введения нескольких строк выполнив \c

SELECT
-> *
-> FROM
-> gebwoocommerce_api_keys
-> \c

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

(или вариации: mysql> , MariaDB> ) Ожидается ввод

2) ->

Ожидается следующая строка запроса длиной в несколько строк

3) ">

Ожидается следующая строка запроса длиной в несколько строк в случае если запрос начат с одинарной кавычки

4) «>

Ожидается следующая строка запроса длиной в несколько строк в случае если запрос начат с двойной кавычки

Ожидается следующая строка запроса длиной в несколько строк в случае если запрос начат с backtick (“`”)
6) /*>

Ожидается следующая строка запроса длиной в несколько строк в случае если запрос начат со знака комментария /*

Создание базы данных MySQL и ее наполнение данными

Работать от имени пользователя root не желательно, лучшим решением является

Например, добавим пользователя user (в тестовой среде можно работать и от имени root). Авторизовавшись в консоли MySQL создаем базу данных и таблицы

CREATE DATABASE REAL_ESTATE_AGENCY;

Query OK, 1 row affected (0.00 sec)

+——————————+
| Database |
+——————————+
| information_schema |
| mysql |
| performance_schema |
| REAL_ESTATE_AGENCY |
+——————————+
4 rows in set (0.03 sec)

Database change

CREATE TABLE REAL_ESTATE (type VARCHAR(20), city VARCHAR(20), floorspace INT, district VARCHAR(20), street VARCHAR(20), rentorsale VARCHAR(20), PRICE VARCHAR (20));

CREATE TABLE PEOPLE (name VARCHAR(20), profession VARCHAR(20), age INT, city VARCHAR(20), district VARCHAR(20), rentorsale VARCHAR(20), PRICE VARCHAR (20));

Query OK, 0 rows affected (0.01 sec)

+——————————+
| Tables_in_REAL_ESTATE_AGENCY |
+——————————+
| PEOPLE |
| REAL_ESTATE |
+——————————+
2 rows in set (0.00 sec)

Информацию о структуре таблицы и всех существующих столбцах и колонках можно получить выполнив команду DESCRIBE

+————+————-+——+——+———+——-+
| Field | Type | Null | Key | Default | Extra |
+————+————-+——+——+———+——-+
| type | varchar(20) | YES | | NULL | |
| city | varchar(20) | YES | | NULL | |
| floorspace | int(11) | YES | | NULL | |
| district | varchar(20) | YES | | NULL | |
| street | varchar(20) | YES | | NULL | |,

| rentorsale | varchar(20) | YES | | NULL | |
| PRICE | varchar(20) | YES | | NULL | |
+————+————-+——+——+———+——-+
7 rows in set (0.00 sec)

Вывести все содержимое таблицы можно с помощью самого общего SELECT запроса (этот вид запросов используется чаще всего и будет подробно рассмотрен в дальнейшем)

SELECT * FROM REAL_ESTATE;

Empty set (0.00 sec)

Данных сейчас нет — наполним таблицы. Делать это можно выполняя UPDATE-ы с необходимыми значениями или загружая данные из тексовых документов. На этапе первоначальной загрузки второй способ гораздо удобнее. Воспользуемся им.

Загрузка данных в таблицы MySQL

Сохраняем информацию в /tmp/real_estate.txt — значения в столбцах разделяем табуляцией. После этого в консоли загружаем данные предварительно выбрав таблицу.

Может возникнуть следующая ошибка.

ERROR 1148 (42000): The used command is not allowed with this MySQL version

Если ошибка возникает к MySQL нужно подключаться с опцией —local-infile=1 :

mysql —local-infile=1 -u root -p

LOAD DATA LOCAL INFILE "/tmp/real_estate.txt" INTO TABLE REAL_ESTATE;

Query OK, 13 rows affected (0.00 sec)
Records: 13 Deleted: 0 Skipped: 0 Warnings: 0

Результаты SELECT теперь выглядят иначе:

SELECT * FROM REAL_ESTATE;


Если для какого-то столбца и ряда нужно значение NULL в текстовом документе оно должно быть представлено как \N. В 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("Не удалось подключиться: %s\n", mysqli_connect_error()); exit(); } else { printf("Удалось подключиться: %s\n", 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.

Читаем следующий урок:

Однако этого недостаточно, чтобы создать даже самый простой сайт с формой регистрации. Для этого необходимы НАВЫКИ ВЕБ-ПРОГРАММИРОВАНИЯ. В эту часть увлекательного путешествия и направляемся.

Frontend и Backend

Программирование можно условно разделить на 2 части: Frontend и Backend.

Frontend разработка - это внешний вид сайта, результат этой работы видят пользователи на экране монитора.

Backend - это внутренняя часть сайта, результат этой работы вы видите через frontend разработку. Когда вы делаете любой запрос: в поиске, нажимаете активную ссылку, кнопку и т.д., то практически мгновенно получаете результат на экран.

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



Приведем аналогию с устным счетом: сложите 32 и 47. Ваш мыслительный процесс никто не видит, он внутри вас. Вы используете свою логику подсчета, так же и сайт использует для выполнения поставленной задачи логику backend разработки.


Основы backend-разработки - PHP/MySQL

PHP - это язык программирования для создания веб-сайтов.

Веб-сайт (website) — совокупность HTML страниц и других электронных документов, с общим дизайн, взаимосвязанных гиперссылками и расположенных на одном доменном имени.

PHP хорошо встраивается в верстку уже известного вам языка HTML.

PHP применяется тогда, когда нужно какую-то информацию хранить на сервере.

Язык PHP отвечает ЗА ЛОГИКУ поведения сайта, но само знание языка не сделает из вас разработчика, вам необходимо научиться СТРОИТЬ АЛГОРИТМЫ .

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

Любой язык прост, если научиться его понимать!

Наша задача научить вас ЧИТАТЬ чужой код, и СОЗДАВАТЬ свой .Что это значит?
Когда вы видите код уже написанной программы, то читая его, легко представите себе, что будет происходить на экране монитора в результате логики работы алгоритмов.

Чтобы научиться web-программированию разбиритесь - какой у вас есть строительный материал для сайтостроения. На данном этапе это язык программирования PHP и база данных MySQL.

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

Ваши основные строительные материалы:

Переменные и их типы,

Константы, операторы,

Массивы и работа с ними,

Функции и создание собственных функций,

Циклы,

Отправка и получение данных из HTML-форм (GET, POST),

Объектно-ориентированное программирование (Классы, инкапсуляция, полиморфизм, наследование, интерфейсы)

Основы безопасности сайта



Важно знать, КАК защитить свое творение. В научитесь грамотно писать программы на PHP, чтобы вероятность взлома сайта стремилась к нулю.

Перейдем к базам данных MySQL/MariaDB

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

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

MySQL/MariaDB - это одна из самых популярных и самых распространенных СУБД (система управления базами данных) в интернете. Большинство данных веб-сайта хранится в MySQL/MariaDB.

SQL - язык запросов к базам данных, с помощью которого можно выбирать данные из таблиц, сортировать данные, суммировать числовые данные, которые хранятся в ячейках таблицы. Таблицы в базах данных похожи на таблицы в Excel, но с помощью SQL можно удобно работать с этими данными.


Научиться работать с базами данных необходимо.
Основные операции:
- ввод и вывод данных,
- сортировка,
- обновление,
- удаление.


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

Подружите их в своей деятельности по сайтостроению на на интерактивной он-лайн .

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

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

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


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

Марк Твен

Будь на максимуме! Включайся в web!
команда beONmax

Ждать не нужно когда наберется группа или наступит дата начала курса - на beONmax вы приступаете к обучению сразу!

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

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

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

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

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

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

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

База данных (БД) – основная составляющая единица СУБД. БД включает в себя таблицы, которые состоят из столбцов и записей (строк). Образуемые на пересечении ячейки содержат в себе структурированные данные определенного типа.

СУБД (система управления БД) – совокупность всех программных модулей для администрирования баз данных.

SQL – язык структурированных запросов, с помощью которого разработчик «общается» с ядром (сервером) СУБД. Как и любой программный язык, SQL имеет свой синтаксис, набор команд и операторов, поддерживаемые типы данных.

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

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

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

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

Первые шаги

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

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

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

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

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

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

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

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

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

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

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

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

Выберите, одну толковую книгу по изучении MySQL. Сосредоточьтесь на этой книге, прочтите ее, закрепите каждую главу на практике. Если, что-то слабо усвоилось, практикуйтесь, не бойтесь вернуться и еще несколько раз прочитать и сделать. Рекомендую прочесть книгу Алана Бьюли «Изучаем SQL», лично мне эта книга очень помогла. Книга написана простым языком, для простых людей в книге доступным языком описывается как установить сервер MySQL, как работают операторы, фильтры и т.д. Подробнее об этой книге читайте .

Если нету еще навыков работы с MySQL, нету понимания типов данных и операторов SQL, не рекомендую начинать осваивать в phpMyAdmin. Это не значить, что phpMyAdmin - плохо. Главная задача освоить SQL и MySQL - лучше делать через консольное приложение.

Скачайте с официального сайта бесплатно сервер MySQL, установите его себе на компьютер и работайте. Например: если взять книгу Алана Бьюли «Изучаем SQL» в ней подробный курс SQL и работа с MySQL, все примеры работы через консольное приложение.

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

Ваши инструменты : выбранная книга, сервер MySQL, практика, практика и еще раз практика.

Имея опыт работы через консольное приложение, разработчику не составить сложности работать в том же самом phpMyAdmin, ему не составит сложности писать все команды SQL. Это нужно и важно, потому, что управлять и создавать базу данных можно в phpMyAdmin толком и не зная SQL. Но помните SQL - запросы писать нужно будет при разработке веб-приложений, от этого не уйти.

Теги: sql, mysql, базы данных