0

Пишу курсовую на тему АРМ админа отеля на языке РНР. Нужно сделать запрос на добавление данных в mysql. Но INSERT INTO не работает. Соединение есть с базою, по-сколько таблицы выводит. Вот код

if((!empty($_POST['surname']))&&(!empty($_POST['name']))&&(!empty($_POST['lastname']))&&(!empty($_POST['password']))
&&(!empty($_POST['address']))&&(!empty($_POST['gender_id']))&&(!empty($_POST['dateofbirth']))&&(!empty($_POST['phone']))){
    $query = mysqli_query($admin, "INSERT INTO `klients` (`surname`, `name`, `lastname`, `passport`, `address`, `gender_id`, `dateofbirth`, `phone`)
        VALUES(".$_POST['surname'].", ".$_POST['name'].", '".$_POST['lastname']."', '".$_POST['password']."', ".$_POST['address'].", 
            ".$_POST['gender_id'].", ".$_POST['dateofbirth'].", ".$_POST['phone'].")");

    if($query){
        echo "<p>Дані додані!</p>";
    }else{
        echo "<p>Помилка!</p>";
    }
}

Сама кнопка для добавления:

echo "<p>Добавити клієнта</p>";
echo "<form action='zaputu/add_clients.php' method='post'>
<input type='text' name='surname'placeholder ='Прізвище' p><br>
<input type='text' name='name'placeholder ='Ім*я' p><br>
<input type='text' name='lastname'placeholder ='По-батькові' p><br>
<input type='text' name='passport'placeholder ='Паспорт' p><br>
<input type='text' name='address'placeholder ='Адреса' p><br>
<input type='text' name='gender_id'placeholder ='Стать' p><br>
<input type='text' name='dateofbirth'placeholder ='Дата народження' p><br>
<input type='text' name='phone'placeholder ='Телефон' p><br>
<button type='submit'>Добавити</button><br>
</form>";

Помогите пожалуйста!!! Очень прошу!

  • Небось кавычки где нибудь забыли. Вы же знаете что в sql зпросах текстовые значения должны быть в кавычках ... Кроме того может быть масса проблем из за самих записываемых значений. Во первых всегда проверяйте на ошибки выполнения запроса и всегда эти самые ошибки печатайте, если они есть. В слепую гадать что не так с запросом обычно раз в 100 сложнее и дольше, чем видя сообщение от БД. – Mike Nov 29 '18 at 21:13
  • 1
    А вот вторых никогда не вставляйте значения переменных в сам текст запроса, у вас будет масса ошибок и вас взломают. Всегда используйте подготавливаемые выражения и привязку значений. http://php.net/manual/ru/mysqli-stmt.bind-param.php – Mike Nov 29 '18 at 21:14

0 Answers0