Не вписываются данные в базу данных
Вроде как код работает но не вписываются введённые данные в таблицу
<?php
$host = 'localhost';
$user = 'root';
$password = '';
$db_name = 'Hurs';
$link = mysqli_connect($host, $user, $password, $db_name);
if ($link == false) {
print("Ошибка: Невозможно подключиться к MySQL" . mysqli_connect_error());
}
else {
print("Соединение установлено успешно <br>");
}
$surname = $_POST['surname'];
"INSERT INTO `users` (surname) VALUES ('$surname')";
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Регистрация</title>
<link rel="stylesheet" href="style-regist.css">
</head>
<body>
<header>
<div id="head-block">
<a href="index.html"><img src="img/LOGO.png" alt="Логотип"></a>
</div>
</header>
<div id="glav">
<div id="vhod">
<span id="vhod-name">Регистрация</span>
<form action="reg.php" method="post">
<div id="vhod-row">
<div id="content-vhod">
<div id="vhod-vvod-sroke">
<div class="img-inpp-vhod"><input type="text" name="surname" placeholder="Фамилия" class="input-vhod" required></div>
</div>
<button type="submit" id="button-vhod-func" >Зарегестрироваться</button>
</div>
<img src="img/gamepadVhod.png" alt="Геймпад">
</div>
</form>
</div>
</div>
<footer>
<div id="head-block">
<img src="img/LOGO.png" alt="Логотип">
</div>
</footer>
</body>
</html>
Ответы (1 шт):
Автор решения: Condor
→ Ссылка
Обращаем внимание на последнюю строку:
"INSERT INTO `users` (surname) VALUES ('$surname')";
Это просто строка, нет функции для выполнения запроса. Также не стоит напрямую передавать значение переменной в запрос:
VALUES ('$surname')
значение нужно передавать через подготавливаемые запросы. Должно быть примерно как-то так:
$host = 'localhost';
$user = 'root';
$password = '';
$db_name = 'Hurs';
$link = mysqli_connect($host, $user, $password, $db_name);
if(isset($_POST['surname'])) {
$surname = $_POST['surname'];
$query = "INSERT INTO `users` (surname) VALUES (?)";
$stmt = mysqli_prepare($link, $query);
mysqli_stmt_bind_param($stmt, "s", $surname);
mysqli_stmt_execute($stmt);
echo "Данные успешно записаны в базу данных.";
} else {
echo "surname не передан через POST.";
}