Зачем вообще нужна какая-то база данных для сайта?
Что такое вообще сайт? Это обычный текстовый файл с расширением html (точнее — URL в строке браузера. может быть и без расширения). Браузер открывает ссылку, читает тэги и выводит на экран.
В самом простом варианте так
<html> <head> </head> <body> Hello, World </body> </html>
Можете попробовать сохранить в блокноте под названием index .html и кликнуть мышкой.
Поздравляем с Вашим первым сайтом!
И конечно, там в коде сайта еще есть:
- вызовы картинок (они хранятся отдельно)
- вызовы скриптов CSS
- вызовы скриптов JavaScript
- и прочее
И кстати.
Всё это передается простым текстовым содержимым (при использовании HTTP) между сервером и браузером — по пути его можно перехватить и дописать свои теги или вызвать JavaScript. Например, добавить вызов рекламного модуля.
Что бы этого не произошло — нужно передаваемое содержимое зашифровать. Сервер шифрует, отдает браузеру клиента, браузер расшифровывает и показывает. Читаем статью
Но руками так создавать сайт неудобно и делать долго — поэтому попросим PHP генерировать тот же самый простой текст (через echo) и отдавать результат браузеру.
Файл теперь будет index.php
<?php $out_text = 'Hello, World'; echo '<html>'; echo '<head>'; echo '</head>'; echo '<body>'; echo $out_text; echo '</body>'; echo '</html>'; ?>
Теперь у нас вывод контента спрятан в переменной $out_text. Меняя переменную — мы меняем и вывод сайта в браузере.
В локальном варианте это работать не будет, т.к. обычно нет сервера PHP. Но можно забросить файл с расширением .php на сервер, вызвать его в строке браузера — и мы получит тот же самый результат:
- сервер выполнит инструкции php
- отдаст результат браузеру
- браузер покажет сайт
Дома тоже можно установить локальный сервер — читаем статью
Осталось решить вопрос — а где хранить нашу переменную $out_text с содержимым сайта?
Можно в отдельном файле, например site.php
<?php
$out_text = 'Hello, World';
?>
и в файле index.php вызвать этот файл через include.
<?php include 'site.php'; //внутри скрипта появится переменная $out_text echo '<html>'; echo '<head>'; echo '</head>'; echo '<body>'; echo $out_text; echo '</body>'; echo '</html>'; ?>
Переносим наши файлы через FTP для домена subdomen.seotable.ru
Читаем статью
Всё работает. Если открыть код сайта — то конечно, там уже никакого PHP нет. Код PHP сделал свое дело на сервере, взял переменную, собрал тэги HTML и отдал серверу.
Такое хранение переменных, например, сделано в WordPress для хранения базовых настроек (да, тот самый файл wp-config.php). Но страниц сайта может быть тысячи — и все переменные сразу не имеет смысла загружать в память.
Дополнительно надо решить вопросы:
- одновременного чтения файла несколькими пользователями
- одновременную запись данных несколькими пользователями
- индексацию содержимого (что бы быстро находить требуемое)
Тогда придумали базу данных :)
В общем бывают два основных типа баз данных:
- Реляционные – используют табличное представление данных (таблицы, Excel)
- Иерархические – используют структуру данных в виде деревьев (файловая система, корень (корневая папка) root, дерево tree)
Где находится база данных на сервере
В папке /var/lib/mysql/имя базы (обычно)
Создаются папка с именем соответствующей базы данных, внутри в виде отдельных файлов — таблицы с данными. И часть служебных файлов.
Условно говоря — это отдельные листы табличного редактора, только хранимые в отдельных файлах.
Т.е. информация так же хранится в файлах?
Да. Фактически база данных — это программная надстройка над файловой системой. Причем с точки зрения программного обеспечения это выглядит единым целым.
Собственно в этих таблицах и хранятся «детали» Вашего сайта. Но фактическое место хранения пользователю особо не нужно.
Т.е. база данных на сервере — это:
- папка с названием базы данных
- файлы в папке — отдельные таблицы в базе
- плюс служебные файлы
Есть оболочка phpMyAdmin, предназначенная для администрирования системы управления БД MySQL
- можно сделать экспорт базы данных в один файл (.sql)
- можно сделать импорт базы данных из файла
- можно редактировать отдельные таблицы и данные в этих таблицах
- можно создавать SQL-запросы к базе данных
Формат SQL запросов
Что бы что-нибудь найти в наших таблицах — существует специальный язык запросов к базе — SQL
Structured Query Language (язык структурированных запросов)
Это фактически фильтр с условиями для поиска нужного содержимого.
Самый простой SQL-запрос
SHOW VARIABLES;
выводит список переменных и их значений. Там их много, смотрим на datadir — это как раз место хранения базы данных на сервере.
Можно уточнить запрос и попросить показать только этот параметр
SHOW VARIABLES LIKE ‘datadir’;
Для поиска в таблицах используется запрос SELECT
SELECT ('столбцы или * для выбора всех столбцов; обязательно')
FROM ('таблица; обязательно')
WHERE ('условие/фильтрация, например, city = 'Moscow'; необязательно')
GROUP BY ('столбец, по которому хотим сгруппировать данные; необязательно')
HAVING ('условие/фильтрация на уровне сгруппированных данных; необязательно')
ORDER BY ('столбец, по которому хотим отсортировать вывод; необязательно')
В результате запроса создается массив с данными. Если посмотреть служебные функции любой CMS — то там именно эти запросы :)
Вот, например, функции WordPress по выборке авторов постов из базы
$author_count = array(); foreach ( (array) $wpdb->get_results( "SELECT DISTINCT post_author, COUNT(ID) AS count FROM $wpdb->posts WHERE " . get_private_posts_cap_sql( 'post' ) . ' GROUP BY post_author' ) as $row ) { $author_count[ $row->post_author ] = $row->count;
Более подробно можно прочитать в статье
Наиболее известные базы данных для сайтов
База данных MySql
MySql (он же «мускул») — наиболее популярная база данных для веб-разработки. В 90% случаев на хостинге будет именно она.
Разработана компанией Sun, потом продукт был куплен компанией Oracle.
База -> Папка -> Файлы для таблиц. Но это еще не конец кроличьей норы. Для управления базой данных используется соответствующее программное обеспечение, так вот у MySql есть два варианта:
- InnoDB
- MyISAM
Это два разных движка базы данных (для разных типов таблиц), причем на одном сервере у хостера может быть оба варианта :)
Главное преимущество InnoDB в скорости работы — при выполнении запроса к базе InnoDB происходит блокировка строки. При выполнении запроса к базе MyISAM блокируется таблица Это означает, что пока запрос выполнен не будет — никакие другие обращения к таблице/строке будут невозможны.
Поскольку строки значительно меньше — InnoDB работает намного быстрее. Разработчики с версии 5.5 сделали движок InnoDB дефолтным.
Хорошая статья про различие таблиц InnoDB и MyISAM
Различия индексов MySql, кластеризация, хранение данных в MyIsam и InnoDb
База данных MariaDB
Альтернативная база данных для замены MySql. Полностью совместима по формату базы данных (т.е. структуре таблиц) и формату SQL-запросов.
Движок (который управляет базой данных) разработан свой.
Точнее — их тоже два варианта.
- замена MyISAM — движок Aria
- замена InnoDB — движок XtraDB
Полностью обратно совместима с InnoDB, в том числе по формату файлов, и идентифицирует себя в MariaDB как «ENGINE = InnoDB», и поэтому может быть использован в качестве замены для стандартного InnoDB.
Основное преимущество XtraDB — поддержка многоядерных и многопроцессорных систем.
Подпишитесь в VKontakte - нажмите кнопку | ||
Подпишитесь в Telegram - нажмите кнопку | ||
Наша группа ODNOKLASSNIKI |
Вы можете сохранить ссылку на эту страницу себе на компьютер в виде htm файла
Запрос на размещение Вашего рекламного поста (тема и email будут добавлены автоматически в письмо)
В Вашем браузере должна быть настроена обработка ссылок mailto
site_post@bk.ru
или просто скопируйте адрес e-mail
Почитать в разделе
CMS — ЧТО ЭТО?

(Читать полностью...)
- Всего статей в разделе: 3
- Показано статей в списке: 2
- Сортировка: название по алфавиту
Denwer
Denwer test test test test test test2 test3 test2...(Читать полностью...)
Подключение MySQL к CMS

(Читать полностью...)