Добавление данных в 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. В качестве параметров она принимает объект подключения и строку, которую надо экранировать.