создание базы данных mysql php примеры
ИнтеллигенцияX
Простая база данных на PHP и MySQL
Сделал на PHP для себя простенькую базу событий с напоминалкой о них на e-mail. Вполне сойдет как пример для работы в PHP с базой данных.
В качестве базы данных конечно MySQL.
Таблички можно создать вручную через phpMyAdmin, как описано в примере создания опроса на PHP здесь https://ds-release.ru/kak-sdelat-formu-dlya-oprosa-na-php/, но здесь таблички я буду создавать с помощью запросов.
Файл для создания таблиц create.php (его запускаем 1 раз, потом удаляем после создания таблиц).
Форма регистрации пользователя add.php
Заносим в базу логин и пароль add1.php
Теперь форма ввода логина и пароля login.php
После правильного ввода логина и пароля отображаем список событий see.php
Под табличкой событий форма для ввода нового события и кнопка Добавить, при нажатии на нее открывается seeadd.php, событие добавляется и снова отображается табличка с новым событием и форма ввода. Чтобы все корректно заносилось, надо обратить внимание на формат даты и кодировку.
В табличке у нас кнопка Изменить открывает change.php с формой изменения введенной ранее записи.
Изменяем событие, и нажимаем Сохранить, после чего открывается seechange.php, новая информации о событии сохраняется.
При нажатии на кнопку «Выслать» запускается файл forgot1.php, который высылает пароль на e-mail пользователя.
В результате получается вот такая простая база данных по событиям с функцией уведомления о событиях на e-mail пользователя:
Дополнительно список событий можно оформить в виде таблички, еще можно добавить кнопку «Удалить» в таблицу для удаления строк, сделать возможность «закрывать» события, нажимая на ссылку сразу в письме с напоминанием, сделать какое-нибудь шифрование пароля, который передается через адресную строку.
А так можно представленные выше куски кода вставить в шаблоны страниц, чтобы красиво было, залить на сайт и будет он-лайн напоминалка о событиях на e-mail.
Блуждаем в дремучем лесу или как в PHP создать базу MySQL
Дата публикации: 2016-11-11
От автора: вот недавно один программист подметил, что при первом знакомстве с PHP испытал те же чувства, что и в детстве, когда заблудился в дремучем лесу. Ему было также темно и страшно. Чтобы вы не переживали подобных чувств при попытках продраться сквозь дебри программирования, я нарисую вам подробную карту местности. Сегодня мы рассмотрим один из участков этого «дремучего леса» — как в PHP создать базу MySQL.
Несколько путей
Использование программных оболочек.
Работа непосредственно с кодом.
При использовании первого варианты мы «сотворим» базу с помощью специализированных приложений для администрирования СУБД MySQL. В таком случае нам не придется запускать запросы SQL непосредственно из программного кода. Точнее, мы их будем использовать, но только не для того, чтобы создать базу данных PHP.
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Преимущества этого варианта заключаются в уменьшении объема кода, и экономии собственных сил и нервов, если не очень разбираетесь в построении запросов SQL. Недостатки – что так и не узнаете, как это делается. А также зависимость от специализированного ПО.
«Постижение» приложения для администрирования MySQL также может вылиться в целую историю. Например, если интерфейс программы «выполнен» не на русском, а на английском.
Легкий путь
Создание базы данных в PHP осуществим с помощью указанной программы. Запускаем ее. Затем вводим имя базы и жмем на «Создать».
В результате ваша собственная база отобразится в списке слева. Но почему ее название выводится маленькими буквами? Ведь мы использовали в начале каждого слова заглавные! Спокойствие, и только спокойствие. Это потому, что MySQL не чувствителен к регистру.
Путь посложнее
Ну, поигрались. А теперь давайте займемся программированием, и с помощью PHP создадим базу данных MySQL. Нам потребуется знание синтаксиса SQL-команды CREATE DATABASE. В качестве параметров ей передаются имя создаваемой базы, кодировка и сравнение.
Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Сравнение (оно же collations) описывает порядок символов для поиска, сортировки и преобразования. Например, не получится сопоставить данные из разных таблиц, если в них используются разные типы сравнения. Вот пример правильно составленной команды:
Создание PHP+MySQL сайта: от простого к сложному — шаг первый
Для создания перспективного, расширяемого и эффективного сайта любой сложности следует начинать с простого. Это процесс нелёгкий, требует определённых базовых знаний PHP и MySQL, но если его рассмотреть по пунктам — то можно составить своего рода «рабочий план», который пригодится при создании новых сайтов. Подготовим «ядро» и базу для проекта. Вначале это будет обычный сайт визитка, но потом, добавляя функционал, его можна превратить во что угодно. Итак, приступим.
1. Подготовка базы данных. Создаём первую таблицу в БД MySQL
Создаём новую базу данных, например «mysite». Лично я привык работать с кодировкой UTF-8, по-этому сразу оговорюсь: проследите, чтобы все текстовые файлы сайта, сама база, таблицы и поля таблиц были в одной кодировке.
В новой базе делаем таблицу. Назовём её «pages». В этой таблице будут храниться статические страницы будущего сайта и информация о них. Таблица должна содержать следующие поля:
Сразу после создания таблицы вставляем в неё значения для главной страницы сайта. В поле «page_alias» для главной страницы предлагаю вставить значение «home». Метатеги — соответственно тематике всего сайта. Таким же образом можно посоздавать другие страницы, например «О компании» с алиасом «about» и своими метатегами, или «Контакты» с алиасом «contacts» и т.д.
2. Создаём файл конфигурации сайта
function close() <
mysql_close($this->link);
>
Этот файл пока содержит только простой класс подключения к базе данных, но в дальнейшем в него можно добавлять разные полезные функции, которые будут доступны из любого места в коде сайта. Не забудьте изменить логин и пароль к Вашей базе.
Если Вы работаете в среде Windows, я могу порекоммендовать использовать редактор Notepad++. В этом редакторе есть нумерация строк, и он легко переводит текст из одной кодировки в другую. ВНИМАНИЕ! Если Вы работаете в кодировке UTF-8 — конвертируйте файлы в UTF-8 without BOM — это поможет избежать проблем в будущем.
3. Создаём index.php — главный контроллер сайта
Файл конфигурации создан. Теперь в корневой папке сайта создаём index.php — это и будет основной скрипт сайта, своего рода «главный контроллер». Содержание файла index.php:
// ГЛАВНЫЙ КОНТРОЛЛЕР
switch ($_GET[option]) <
case «page»:
include($_SERVER[DOCUMENT_ROOT].»/com/page.php»);
break;
default:
include($_SERVER[DOCUMENT_ROOT].»/com/home.php»);
break;
>
include ($_SERVER[DOCUMENT_ROOT].»/template.php»);
$db->close();
4. Создаём компонент вывода обычной страницы
Создаём в папке «com» файл «page.php». Содержимое файла следущее:
5. Создаём компонент вывода главной страницы
Главная страница у нас в базе данных хранится под псевдонимом «home», и пока по своей структуре не отличается от обычных страниц сайта — это просто статья. Тем не менее создадим для неё отдельный компонент — на перспективу, так сказать.
Содержимое компонента «home.php» в папке «com» почти совпадает с содержимым компонента обычной страницы, за исключением строки запроса к базе и названия компонента. Строка запроса теперь выглядит так:
$query = «SELECT * FROM wx_pages WHERE page_alias=’home’ LIMIT 1»;
6. Создаём шаблон дизайна всего сайта
В корневой папке также должны быть папки «css» и «images» для элементов дизайна. В файле /css/style.css — можно настроить стили по своему усмотрению.
RewriteEngine On
RewriteBase /
PHP: работа с БД MySQL
Базы данных используются для удобного хранения информации, а также для её структурирования. Они являются очень важной вещью для создания динамических веб-сайтов.
Их используют для:
В этой статье мы научимся вставлять, изменять, получать и защищать данные из БД MySQL, используя PHP.
Основная разница в том, что PDO может работать с огромным количеством баз данных: MySQL, Cubrid, Oracle, SQlite и так далее. А mysqli может работать только с MySQL.
В своей статье я покажу, как работать с PDO.
Примеры показывать буду на локальном сервере ( xampp ).
Создание БД и таблиц
Создать БД можно из панели управления хостингом, если есть такая возможность, а если нет, то из phpMyAdmin. Сравнение ставим utf8_general_ci.
Теперь мы имеем готовую БД и таблицу для работы с ней.
Подключение к БД с помощью PHP
Создаём файл index.php и прописываем:
Мы создали подключение к БД. Подключение от PDO не нужно закрывать, оно само закрывается, когда скрипт завершает свою работу.
Выборка данных
Здесь я сделаю небольшое отступление. Выбирать данные можно:
PDO::FETCH_ASSOC — возвращает массив с названиями столбцов в виде ключей.
PDO::FETCH_OBJ — возвращает анонимный объект со свойствами, соответствующими именам столбцов.
Fetch() — каждый раз извлекает следующую строку.
Продолжаем скрипт:
В данном случае код выведет логин всех, кто есть в таблице.
В данном случае код выведет также логин всех, кто есть в таблице.
Выборка данных по параметру + защита
Мы можем выбирать определённые данные из таблицы. Например, мы можем выбрать все записи, где pass = 123, и тому подобные.
Вот первый пример выборки по логину + защита:
Можно указать несколько вопросительных знаков, а в execute перечислить замены для них через запятую.
Вот второй пример выборки по логину + защита:
Второй способ использовать предпочтительнее, так как читаемость и понятность кода более понятна, чем в первом примере, но использовать можно два способа.
Вставка данных по параметру + защита
Теперь можем проверить таблицу. Видим, что всё сработало правильно.
Обновление данных по параметру + защита
Теперь можем проверить таблицу. Видим, что всё сработало правильно.
Заключение
Как видите, работать с PDO довольно легко. Теперь вы сами можете создавать веб-сайты с базами данных.
Надеюсь, что вам понравилась статья, и вы получили новые знания.
Связь с базами данных MySQL
Краткое введение в MySQL
Система MySQL представляет собой сервер, к которому могут подключаться пользователи удаленных компьютеров.
Для работы с базами данных удобно пользоваться средством phpMyAdmin, входящее в комплект Web-разработчика: Open Server. Здесь можно создать новую базу данных, создать новую таблицу в выбранной базе данных, заполнить таблицу данными, а также добавлять, удалять и редактировать данные.
В MySQL определены три базовых типа данных: числовой, дата и время и строчный. Каждая из этих категорий подразделяется на множество типов. Основные из них:
Тип | Описание |
---|---|
INT | Целое число |
TINYINT | Маленькое целое число (-127 до 128 или от 0 до 255) |
FLOAT | Вещественное число с плавающей точкой |
DATE | Дата. Отображается в виде ГГГГ-ММ-ДД |
TIME | Время. Отображается в виде ЧЧ:ММ:СС |
DATETIME | Дата и время. Отображается в виде ГГГГ-ММ-ДДЧЧ:ММ:СС |
YEAR[(2|4)] | Год. Можно определить двух- или четырехциферный формат |
CHAR(M) | Строка фиксированной длины М (M |
Тип | Описание |
NOT NULL | Все строки таблицы должны иметь значение в этом атрибуте. Если не указано, поле может быть пустым (NULL) |
AUTO_INCREMENT | Специальная возможность MySQL, которую можно задействовать в числовых столбцах. Если при вставке строк в таблицу оставлять такое поле пустым, MySQL автоматически генерирует уникальное значение идентификатора. Это значение будет на единицу больше максимального значения, уже существующего в столбце. В каждой таблице может быть не больше одного такого поля. Столбцы с AUTO_INCREMENT должны быть проиндексированными |
PRIMARY KEY | Столбец является первичным ключом для таблицы. Данные в этом столбце должны быть уникальными. MySQL автоматически индексирует этот столбец |
UNSIGNED | После целочисленного типа означает, что его значение может быть либо положительным, либо нулевым |
COMMENT | Название столбца таблицы |
Создание новой базы данных MySQL осуществляется при помощи SQL-команды CREATE DATABASE.
Создание новой таблицы осуществляется при помощи SQL-команды CREATE TABLE. Например, таблица books для книжного магазина будет содержать пять полей: ISBN, автор, название, цена и количество экземпляров: Чтобы избежать сообщения об ошибке, если таблица уже есть необходимо изменить первую строчку, добавив фразу «IF NOT EXISTS»:
Для создания автообновляемого поля с текущей датой типа TIMESTAMP или DATETIME используйте следующую конструкцию:
Добавление данных в эту таблицу осуществляется при помощи SQL-команды INSERT. Например:
Для извлечения данных из таблицы служит оператор SELECT. Он извлекает данные из базы, выбирая строки, которые отвечают заданному критерию поиска. Оператор SELECT сопровождает немалое количество опций и вариантов использования.
Символ * означает, что необходимы все поля. Например:
Для получения доступа только к некоторому полю следует указать его имя в инструкции SELECT. Например:
Чтобы получить доступ к подмножеству строк в таблице, следует указать критерий выбора, который устанавливает конструкция WHERE. Например, чтобы выбрать имеющиеся в наличии недорогие книги о PHP, надо составить запрос: % Соответствует любому количеству символов, даже нулевых
_ Соответствует ровно одному символу
Для того, чтобы строки, извлеченные по запросу, перечислялись в определенном порядке, используется конструкция ORDER BY. Например:
По умолчанию порядок сортировки идет по возрастанию. Изменить порядок сортировки на обратный можно с помощью ключевого слова DESC:
Сортировать можно и по нескольким столбцам. Вместо названий столбцов можно использовать их порядковые номера:
Для изменения ранее записанных в таблицу значений нужно воспользоваться командой UPDATE. Например, цену всех книг повысили на 10%:
Конструкция WHERE ограничит работу UPDATE определенным строками. Например:
Для удаления строк из базы данных используется оператор DELETE. Ненужные строки указываются при помощи конструкции WHERE. Например, какие-то книги проданы:
Если нужно удалить все записи
Для полного удаления таблицы используется:
Связь PHP с базой данных MySQL
Поработав с phpMyAdmin над созданием базы данных, можно приступить к подключению этой базы данных к внешнему Web-интерфейсу.
Для подключения к серверу базы данных в PHP есть функция mysql_connect( ). Ее аргументы: имя компьютера, имя пользователя и пароль. Эти аргументы можно опустить. По умолчанию имя компьютера = localhost, тогда имя пользователя и пароль не требуется. Если PHP используется в сочетании с сервером Apache, то можно воспользоваться функцией mysql_pconnect(). В этом случае соединение с сервером не исчезает после завершения работы программы или вызова функции mysql_close(). Функции mysql_connect() и mysql_pconnect() возвращают идентификатор подключения, если все прошло успешно. Например:
После того, как соединение с сервером MySQL установлено, нужно выбрать базу данных. Для этого используется функция mysql_select_db(). Ее аргумент: имя базы данных. Функция возвращает true, если указанная база данных существует и доступ к ней возможен. Например:
Для добавления, удаления, изменения и выбора данных нужно сконструировать и выполнить запрос SQL. Для этого в языке PHP существует функция mysql_query(). Ее аргумент: строка с запросом. Функция возвращает идентификатор запроса.
Пример 1
При каждом выполнении примера 1 в таблицу будет добавляться новая запись, содержащая одни и те же данные. Разумеется имеет смысл добавлять в базу данные, введенные пользователем.
В примере 2.1 приведена HTML-форма для добавления новых книг в базу данных.
Пример 2.1
Результаты заполнения этой формы передаются в insert_book.php.
Пример 2.2
В примере 2.2 введенные строковые данные обработаны функцией addslashes(). Эта функция добавляет обратные слеши перед одинарными кавычками (‘), двойными кавычками («), обратным слешем (\) и null-байтом. Дело в том, что по требованиям систаксиса запросов баз данных такие символы дожны заключаться в кавычки.
Для определения количества записей в результате запроса используется функция mysql_num_rows().
Все записи результата запроса можно просмотреть в цикле. Перед этим с помощью функции mysql_fetch_[] для каждой записи получают ассоциативный массив.
В примере 3.1 приведена HTML-форма для поиска определенных книг в базе данных.
Пример 3.1
Результаты заполнения этой формы передаются в search_book.php.
Пример 3.2
Альтернативный вариант
Использование механизма транзакций
Использование механизма транзакция на примере как передать деньги от одного человека другому
SELECT … FOR UPDATE
Если Вы запускаете несколько процессов, которые делают select запрос к одной и той же таблице, то они могут выбрать одну и ту же запись одновременно.
Чтобы избежать вышеупомянутой ситуации необходимо выполнить не просто SELECT запрос, а его расширенную версию, о которой многие и не подозревают: SELECT … FOR UPDATE.
Таким образом, при выполнении данного запроса, все затронутые записи в базе данных будут заблокированы до завершения сеанса работы с БД или до момента обновления данных записей. Другой скрипт не сможет выбрать заблокированные записи до тех пор, пока не наступит одно из упомянутых условий.
Однако не всё так просто. Вам нужно выполнить ещё несколько условий. Во-первых, ваша таблица должна быть создана на основе архитектуры InnoDB. В противном случае блокировка просто не будет срабатывать. Во-вторых, перед выполнением выборки необходимо отключить авто-коммит запроса. Т.е. другими словами автоматическое выполнение запроса. После того как вы укажите UPDATE запрос, необходимо будет ещё раз обратиться к базе и закоммитить изменения с помощью команды COMMIT:
Представьте что у нас есть 2 записи в таблице. Мы запускаем два параллельных скрипта с данным содержанием. В результате, первый процесс, который сможет достучаться до базы сделает выборку записи и сразу же заменит значение в поле locked на 1. В результате второй скрипт проигнорирует первую запись. В данном случае, даже если скрипты достучались бы до БД одновременно, второй скрипт всё равно не смог бы выбрать первую запись, т.к. при выборке первым процессом она будет заблокирована.