Не вписываются данные в базу данных

введите сюда описание изображенияВроде как код работает но не вписываются введённые данные в таблицу

введите сюда описание изображения

    <?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.";
}
→ Ссылка