Знакомство с MySQL: функции, настройка и подключение
Что включает в себя веб-сайт? Обязательно набор HTML-страниц с разметкой, текстом, заголовками; CSS-таблицы для красоты и стиля. Чтобы ресурс был интерактивным, дизайнеры создают javascript и php-скрипты. А также любому полноценному приложению нужны данные - списки пользователей, товаров, почтовые адреса клиентов. Конечно, их можно хранить в отдельных файлах. Но гораздо безопаснее и удобнее использовать базу данных. Самой популярной на сегодняшний день является MySQL. Давайте разберемся с основными функциями MySQL и научимся выполнять простые запросы к БД.
Настройка программного обеспечения
MySQL — это программа, которая выполняется на компьютере. Поэтому, чтобы было с чем работать, вы должны сначала скачать MySQL на свою рабочую машину. Если есть свой хост, то база данных уже установлена на веб-сервере. Эту услугу предоставляет каждый хостинг-провайдер, так что просто зайдите в phpMyAdmin.
Для загрузки и настройки MySQL на персональном компьютере скачайте и установите локальный сервер. Это может быть Denver, OpenServer или XAMPP (LAMPP для Linux). В этой статье все примеры созданы на XAMPP. Рабочая директория находится в C:/xampp/htdocs. Для удобства создайте отдельный каталог с названием сайта, в котором будет отдельно папка scripts для файлов php.
Создание первой базы данных
После установки XAMPP наберите в командной строке браузера localhost/dashboard/. Откроется приветственное письмо с панелью навигации вверху. Нажмите на phpMySQL и переходите по ссылке. Вы попадете в специальное веб-приложение, обеспечивающее доступ к MySQL. В левой колонке представлен список уже существующих баз и кнопка для создания новой. Нажимайте ее и вводите любое имя, пусть это будет myFirstDB. Справа от поля для имени находится выпадающий список для выбора кодировки, в котором нужно найти utf8_general_ci.
Функция MySQL хранить информацию и обеспечивать к ней доступ. Все данные находятся в форме таблиц, состоящих из строк и столбцов. Создать такую таблицу можно в командной строке или через интерфейс phpMySQL. Для этого выберите myFirstDB, нажмите кнопку вверху SQL и наберите следующее.
CREATE TABLE users(
user_id int AUTO_INCREMENT PRIMARY KEY,
username varchar(50),
email varchar(100)
);
Теперь у вас есть таблица, в которую пользователи могут вносить свое имя и почтовый адрес. Столбец user_id будет заполняться автоматически и увеличиваться на единицу в каждой новой строке. Доступ к информации вы можете получать из phpMySQL, но проще это делать непосредственно из php-сценариев с помощью функций Mysqli.
Подключение к базе данных из сценариев
В рабочем каталоге в папке scripts создайте документ config.php. Здесь у вас будут храниться конфигурационные настройки, php функции Mysqli для доступа к базе. Этот файл вы будете в дальнейшем подключать для работы MySQL из других сценариев.
Сначала вам нужно подключиться к базе данных, для этого вам понадобится имя хоста, пользователя, БД и пароль для входа.
<?php
DEFINE("DATABASE_HOST", "localhost");
DEFINE("DATABASE_USER_NAME","root");
DEFINE("DATABASE_PASSWORD","");
DEFINE("DATABASE_NAME","myFirstDB");
?>
С помощью функции Mysqli мы подключимся к заранее созданной myFirstDB.
//для объектно-ориентированного стиля
$mysqli = new mysqli(DATABASE_HOST, DATABASE_USER_NAME, DATABASE_PASSWORD, DATABASE_NAME) or die("Can't connect to MySQL: ".mysqli_connect_error());
//процедурного
$link = mysqli_connect(DATABASE_HOST, DATABASE_USER_NAME, DATABASE_PASSWORD, DATABASE_NAME)
or die("Can't connect to MySQL: ".mysqli_connect_error());
Занесение данных в таблицу
Чтобы каждый раз не вносить данные вручную, понадобится скрипт, который будет получать информацию из веб-формы и автоматически записывать ее в таблицу. Создайте простую форму с полями, соответствующим именам столбцов users.
<form action="create_user.php" method="POST" id="signup_form"
<label for="username">Имя пользователя:</label>
<input type="text" name="username" size="20" class="required" />
<label for="email">E-Mail Address:</label>
<input type="email" name="email" size="50" />
<input type="submit" value="Join" />
<input type="reset" value="Restart" />
</form>
Форма отправляет данные сценарию create_user.php.
<?php
require_once 'scripts/config.php';
//собираю информацию из формы
$username = htmlspecialchars(trim($_REQUEST['username']));
$email = htmlspecialchars(trim($_REQUEST['email']));
//текст для запроса базе данных и взаимодействие с MySQL
$insert_sql = "INSERT INTO users(username, email) VALUES(?,?)";
// подготовленный запрос
$stmt = $mysqli->prepare($insert_sql) or die("Ошибка при создании подготовленного запроса");
$stmt->bind_param('ss', $username, $email) or die("Ошибка при создании параметров подготовленного запроса");
$stmt->execute() or die("Ошибка при отправке подготовленного запроса");
$stmt->close();
?>
В верхней строке сценарий запрашивает файл config.php с подключением к базе данных. С помощью переменных $username и $email собирает введенные пользователем строки и с помощью функций Mysqli заносит их в таблицу. Проверьте работоспособность сценария, а потом откройте phpMyAdmin и посмотрите, как изменилась ваша таблица users.