Добавление данных в MySQLi Последнее обновление: 09.06.2021 В прошлой теме мы добавили в базу данных таблицу Users с тремя столбцами id, name, age со следующим определением: CREATE TABLE Users (id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), age INTEGER) Теперь добавим в нее данные. Для добавления данных в MySQL применяется команда INSERT: INSERT INTO название_таблицы (столбец1, столбец2, столбецN) VALUES ( значение1, значение2, значениеN) Объектно-ориентированный подход connect_error){ die("Ошибка: " . $conn->connect_error); } $sql = "INSERT INTO Users (name, age) VALUES ('Tom', 37)"; if($conn->query($sql)){ echo "Данные успешно добавлены"; } else{ echo "Ошибка: " . $conn->error; } $conn->close(); ?> Множественное добавление: connect_error){ die("Ошибка: " . $conn->connect_error); } $sql = "INSERT INTO Users (name, age) VALUES ('Sam', 41), ('Bob', 29), ('Alice', 32)"; if($conn->query($sql)){ echo "Данные успешно добавлены"; } else{ echo "Ошибка: " . $conn->error; } $conn->close(); ?> Процедурный подход Множественное добавление: Добавление данных из формы HTML В большинстве случаев добавляемые данные будут приходить из вне, например, присылаться в запросе пользователя. Рассмотрим добавление данных, отправленных из формы HTML. Для этого определим веб-страницу form.html, на которой определим следующий код: METANIT.COM

Добавление пользователя

Имя:

Возраст:

Здесь определены два поля ввода. И по нажатию на кнопку их данные в запросе POST будут уходить скрипту create.php. Теперь определим сам скрипт create.php. Объектно-ориентированный подход connect_error){ die("Ошибка: " . $conn->connect_error); } $name = $conn->real_escape_string($_POST["username"]); $age = $conn->real_escape_string($_POST["userage"]); $sql = "INSERT INTO Users (name, age) VALUES ('$name', $age)"; if($conn->query($sql)){ echo "Данные успешно добавлены"; } else{ echo "Ошибка: " . $conn->error; } $conn->close(); } ?> Здесь мы проверяем, пришли ли с сервера данные в POST-запросе, которые имеют ключи "username" и "userage": if (isset($_POST["username"]) && isset($_POST["userage"])) { Если эти данные имеются, то есть был отправлен post-запрос с данными на добавление, то мы получаем эти данные в переменные и добавляем их в бд. Но перед добавлением к этим данным применяется метод $conn->real_escape_string(), которая принимает сохраняемое значение и экранирует в нем спецсимволы, что позволяет защитить от SQL-инъекций. В итоге после ввода данных и нажатия на кнопку данные в запросе POST уйдут скрипту create.php, который сохранит их в базу данных. Добавление данных в MySQL в PHP Процедурный подход Здесь применяется функция mysqli_real_escape_string(). Она служит для экранизации символов в строке, которая потом используется в запросе SQL. В качестве параметров она принимает объект подключения и строку, которую надо экранировать.