PHP Создание базы данных MySQL
Вам понадобятся специальные привилегии CREATE для создания или удаления базы данных MySQL.
Создание базы данных MySQL с помощью MySQLi и PDO
CREATE DATABASE оператор используется для создания базы данных в MySQL.
Следующие примеры создать базу данных с именем "myDB" :
Пример (MySQLi Object-oriented)
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) <
die("Connection failed: " . $conn->connect_error);
>
// Create database
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) <
echo "Database created successfully";
> else <
echo "Error creating database: " . $conn->error;
>
Примечание: При создании новой базы данных, необходимо указать только первые три аргумента к Mysqli объекта (имя_сервера, имя пользователя и пароль).
Совет: Если вы должны использовать определенный порт, добавьте пустую строку для имен базы данных аргумента, например: новый mysqli("localhost", "username" , "password" , "" , port)
Пример (MySQLi Procedural)
// Create connection
$conn = mysqli_connect($servername, $username, $password);
// Check connection
if (!$conn) <
die("Connection failed: " . mysqli_connect_error());
>
// Create database
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) <
echo "Database created successfully";
> else <
echo "Error creating database: " . mysqli_error($conn);
>
Примечание: В следующем примере PDO создать базу данных с именем "myDBPDO" :
Пример (PDO)
try <
$conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "CREATE DATABASE myDBPDO";
// use exec() because no results are returned
$conn->exec($sql);
echo "Database created successfully<br>";
>
catch(PDOException $e)
<
echo $sql . "<br>" . $e->getMessage();
>
Совет: Большое преимущество PDO является то , что он имеет класс исключений для обработки любых проблем , которые могут возникнуть в наших запросах к базе данных. Если исключение в попытке <> блока, скрипт прекращает выполнение и переходит непосредственно к первому catch() <> блока. В блоке уловов выше мы эхо оператор SQL, и сообщение об ошибке генерируется.
SQL для начинающих
Система управления базами данных (СУБД) — это отдельная программа, которая работает как сервер, независимо от PHP.
Создавать свои базы данных, таблицы и наполнять их данными можно прямо из этой же программы, но для выполнения этих операций прежде придётся познакомиться с ещё одним языком программирования — SQL.
SQL или Structured Query Language (язык структурированных запросов) — язык программирования, предназначенный для управления данными в СУБД. Все современные СУБД поддерживают SQL.
На языке SQL выражаются все действия, которые можно провести с данными: от записи и чтения данных, до администрирования самого сервера СУБД. Для повседневной работы совсем не обязательно знать весь этот язык; достаточно ознакомиться лишь с основными понятиями синтаксиса и ключевыми словами.
Кроме того, SQL очень простой язык по своей структуре, поэтому его освоение не составит большого труда.
Язык SQL — это в первую очередь язык запросов, а кроме того он очень похож на естественный язык. Каждый раз, когда требуется прочитать или записать любую информацию в БД, требуется составить корректный запрос. Такой запрос должен быть выражен в терминах SQL.
Например, чтобы вывести на экран все записи из таблицы города , составим такой запрос:
Если перевести этот запрос на язык SQL, то корректным результатом будет:
Теперь напишем запрос на добавление в таблицу города нового города:
Эта команда создаст в таблице города новую запись, где полю имя города будет присвоено значение Санкт-Петербург .
С помощью SQL можно не только добавлять и читать данные, но и:
- удалять и обновлять записи в таблицах;
- создавать и редактировать сами таблицы;
- производить операции над данными: считать сумму, получать самое большое или малое значение, и так далее;
- настраивать работу сервера СУБД.
MySQL
Существует множество различных реляционных СУБД. Самая известная СУБД — это Microsoft Access, входящая в состав офисного пакета приложений Microsoft Office. Нет никаких препятствий для использования в качестве СУБД MS Access, но для задач веб-программирования гораздо лучше подходит альтернативная программа — MySQL.
В отличие от MS Access, MySQL абсолютно бесплатна, может работать на серверах с Linux, обладает гораздо большей производительностью и безопасностью, что делает её идеальным кандидатом на роль базы данных в веб-разработке.
Подавляющее большинство сайтов и приложений на PHP используют в качестве СУБД именно MySQL.
Установка
Последняя версия MySQL доступна для загрузки по ссылке: https://dev.mysql.com/downloads/mysql/. На этой странице следует выбрать MySQL Installer for Windows и нажать на кнопку Download для загрузки.
В процессе установки запомните директорию, куда вы устанавливаете MySQL (скрывается под ссылкой Advanced options). На шаге Accounts and Roles установщик попросит придумать пароль для доступа к БД (MySQL Root Password) — обязательно запомните или запишите этот пароль — он вам ещё понадобится.
Если для своей работы вы используете программную среду OpenServer, то этот раздел можно смело пропустить, так как в состав OpenServer уже входит свежая версия MySQL.
Выполнение запросов
По умолчанию, если вы не устанавливали дополнительные программы, у MySQL нет графического интерфейса пользователя. Это значит, что единственный способ работы с ней — это использование командной строки.
- Откройте командную строку (Выполнить — cmd.exe ).
- Перейдите в каталог с установленной MySQL: cd /d <каталог установки>/bin .
- Выполните: mysql -uroot -p .
- Введите пароль, заданный при установке.
Если вы всё выполнили верно, то в командной строке запустится клиент для работы с MySQL (вы поймете это по строке приглашения «mysql>»). С этого момента можно вводить любые SQL запросы, но каждый запрос обязательно должен заканчиваться точкой с запятой ; .
Оператор SQL create database: создание новой базы данных
Приступим к практике — начнём создавать базу данных для ведения погодного дневника.
Начать следует с создания новой базы данных для нашего сайта. Новая БД в MySQL создаётся простой командой:
После этого MySQL создаст для нас новую БД, в которой будет происходить вся дальнейшая работа. Это важно: после создания БД её невозможно будет переименовать, а только удалить и создать заново. По этой причине крайне внимательно подойдите к выбору имени для базы данных.
create table
Зачем нужен:создание таблиц
Создав новую БД, сообщим MySQL, что теперь мы собираемся работать именно с ней. Выбор активной БД выполняется командой:
Пришло время создать первые таблицы! Для ведения дневника по всем правилам, понадобится создать три таблицы: города ( cities ), пользователи ( users ) и записи о погоде weather_log . В подразделе «Запись» этой главы описано, как должна выглядеть структура таблицы weather_log . Переведём это описание на язык SQL:
Чтобы ввести многострочную команду в командной строке используйте символ \ в конце каждой строки, кроме последней.
Теперь создадим таблицу городов:
MySQL может показать созданную таблицу, если попросить об этом командой:
В ответе будут перечислены все поля таблицы, их тип и другие характеристики.
Что такое первичный ключ
В примере с созданием новой таблицы при перечислении необходимых полей первым полем идёт id INT AUTO_INCREMENT PRIMARY KEY . Это поле называется первичным ключом. Обязательно создавать первичный ключ в каждой таблице.
Первичный ключ — это особенное поле, в котором сохраняется уникальный идентификатор записи.
Первичный ключ нужен, чтобы у программиста и базы данных всегда была возможность однозначно обратиться к одной конкретной записи для её чтения, обновления или удаления. Если назначить поле первичным ключом, то БД будет следить за тем, чтобы значение в этом поле больше не повторялось в таблице.
А если ещё и добавить аттрибут AUTO_INCREMENT , то MySQL при добавлении новых записей будет заполнять это поле сама. AUTO_INCREMENT будет играть роль счётчика — каждая новая запись в таблице получит значение на единицу больше максимального существующего значения.
insert into
Зачем нужен: добавление записи в таблицу
Начнём с добавления новых данных в таблицу. Для добавления записи используется следующий синтаксис:
В начале добавим город в таблицу городов:
При добавлении записи необязательно указывать значения для всех полей. Многие из полей имеют значения по умолчанию, которые сами заполняются при сохранении.
Теперь создадим запись о погоде за сегодня.
При определении таблицы weather_log мы решили ссылаться на город, путём записи в поле city_id идентификатора города из таблицы cities. Так как мы только что добавили новый город, ничего не мешает использовать его идентификатор в записи о погоде.
Идентификатором города будет первичный ключ, который также был определён в качестве первого поля таблицы. Нумерация этого поля начинается с единицы, значит первая добавленная запись имеет идентификатор 1 . Зная это, запрос на добавление записи о погоде в Санкт-Петербурге за третье сентября 2017 года выглядит так:
select. Чтение информации из БД
Для вывода информации из БД используются запросы типа SELECT .
В запросе нужно указать имя таблицы, необходимые поля, а также дополнительные параметры (будут рассмотрены в следующем уроке).
Например, чтобы получить список всех доступных городов:
Все погодные записи:
Вместо перечисления всех столбцов можно использовать знак звездочки — * .
Оператор update: обновление информации в БД
При добавлении записи очень легко совершить ошибку: сделать опечатку, не указать значение для одного из полей, и так далее. Естественно, язык SQL предлагает возможности для редактирования уже созданных записей.
Предположим, что при добавлении погодной записи пользователь ошибся и ввёл неверную дату. Чтобы исправить эту ошибку, нужно использовать оператор обновления — UPDATE . Запрос с этим оператором позволяет обновить значение одного или нескольких полей в существующей записи. Выглядит он так:
Но чтобы правильно составить запрос, необходимо определить условие для поиска записи, которую предлагается обновить. В противном случае, если не указать это условие, то будут обновлены абсолютно все записи в таблице.
В качестве такого условия лучше всего использовать первичный идентификатор записи. Поэтому, прежде чем выполнять запрос обновления, нужно выполнить запрос на чтение информации из таблицы, чтобы узнать, под каким идентификатором сохранилась ошибочная запись. Допустим, этот идентификатор — единица, а правильная дата — седьмое декабря 2022 года.
Запрос на обновление:
Оператор join: объединение записей из двух таблиц
В нашей таблице для хранения погодного дневника город сохраняется как идентификатор, поэтому при обычном чтении данных из этой таблицы вместо названия города стоит непонятное число. Чтобы подставить на место числа действительное значение, а конкретнее — название города, в SQL существуют операторы объединения — JOIN . Поддержка операторов объединения и позволяет базе данных называться реляционной.
Поменяем запрос на показ погодных записей, чтобы он объединял две таблицы, а в поле города показывалось его название, а не идентификатор:
Создание базы данных MySQL
Для создания или удаления базы данных MySQL вам потребуются специальные права CREATE.
Создание БД с использованием ООП MySQLi
Мы уже узнали как установить соединение с сервером. Мы можем выполнить запрос на создание БД из нашего PHP-скрипта тремя разными способами:
Использование объектно-ориентированной процедуры MySQLi: если соединение MySQL установлено с использованием объектно-ориентированной процедуры, мы можем использовать функцию query() класса mysqli для выполнения нашего запроса, как описано в синтаксисе ниже:
Пример (объектно-ориентированный MySQLi)
Примечание: При создании новой базы данных вы должны указать только первые три аргумента для объекта mysqli (имя сервера, имя пользователя и пароль).
Создание БД с использованием процедуры MySQLi
Использование процедуры MySQLi: если соединение MySQL установлено с использованием процедуры MySQLi, мы можем использовать функцию mysqli_query() PHP для выполнения нашего запроса, как описано в синтаксисе ниже:
Пример (процедура MySQLi)
Создание БД с использованием процедуры PDO
Использование процедуры PDO: если соединение MySQL установлено с использованием процедуры PDO, мы можем выполнить наш запрос, как описано в синтаксисе ниже:
Пример (PDO)
Примечание: Класс исключения в PDO используется для обработки любых проблем, которые могут возникнуть в наших запросах к базе данных. Если в блоке try<> возникает исключение, сценарий прекращает выполнение и переходит непосредственно к первому блоку catch() <> . В блоке catch мы повторяем инструкцию SQL и генерируем сообщение об ошибке.
Результат выполнения кода:
Для тестирования воспользуаемся WAMP сборкой OpenServer и MySQL, который входит в её комплект. Сервер OpenServer предварительно должен быть запущен.
Мы можем перейти на http://127.0.0.1/openserver/ phpmyadmin/index.php, чтобы получить доступ к области phpMyAdmin.
На левой панели меню мы должны увидеть новую базу данных с именем demo.
Как создать базу данных средствами mysqli либо PDO?
Как можно подключиться к серверу mysql и выполнить команду Create database?
Как-то так, только без указания базы (4-параметра):
После чего выполнить, например, команду mysql_create_db.
Как это можно сделать?
Примеры создания базы данных для различных подходов ниже.
Mysqli объектно ориентированный стиль
Mysqli процедурный стиль
PDO
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.6.7.43483
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.