Запрос в базу MySQL не добавляет данные

353
26 ноября 2016, 20:25
<?php
    $connect = @mysql_connect('localhost','root','') or die('ERROR Conection!');
    @mysql_select_db('pepsoman',$connect) or die ('DataBase ERROR');
    $success = "";
    if(isset($_POST['reg'])){
        $name = $_POST['name'];
        $surname = $_POST['surname'];
        $username = $_POST['username'];
        $password = $_POST['password'];
        $con_password = $_POST['con_password'];
        $age = $_POST['age'];
        $gender = $_POST['gender'];
        $insert = mysql_query("insert into users (name,surname,username,password,age,gender) values('$name','$surname','$username','$password','$age','$gender')");
        if($con_password != $password){
            $success = '
                <div class="panel panel-danger">
                  <div class="panel-heading">ERROR ConfirmPassword</div>
                </div>
            ';
        }
        else{
            $success = '
                <div class="panel panel-success ">
                  <div class="panel-heading">Registration</div>
                </div>
            ';
        }
    }
?>
Answer 1
    `$insert = mysql_query("insert into users (name,surname,username,password,age,gender) values('$name','$surname','$username','$password','$age','$gender')");`
  1. Проверьте приходят ли $_POST данные.
  2. Вообще не плохо было бы проверять перед записью в mysql есть ли они вообще через isset($_POST['name'])&&isset($_POST['surname']) и т.д.
  3. В данном конкретном случае sql запрос должен выглядеть так:

    $insert = mysql_query("insert into users (name,surname,username,password,age,gender) values('{$name}','{$surname}','{$username}','{$password}','{$age}','{$gender}')");

или

 $insert = mysql_query("insert into users (name,surname,username,password,age,gender) values('".$name."','".$surname."' и т.д. 

Так же если планируете выкладывать этот сайт в общий доступ советую почитать статьи про базовую защиту от sql-иньекций, salt и методологию хранение паролей.

Answer 2

На улице уже 2016, самое время освоить mysqli или pdo. И так, немного изменю твой код:

$link = mysqli_connect("host", "user", "password", "pepsoman") 
        or die(mysqli_error($link));
    if(isset($_POST['reg'])){
        $name = $_POST['name'];
        $surname = $_POST['surname'];
        $username = $_POST['username'];
        $password = $_POST['password'];
        $con_password = $_POST['con_password'];
        $age = $_POST['age'];
        $gender = $_POST['gender'];
        $result = mysqli_query($link, "INSERT INTO users (name, surname, username, password, age, gender) 
        VALUES ('$name','$surname','$username','$password','$age','$gender')");
        if(mysqli_affected_rows($result)>0){
           echo 'Добавлено';
        }
    }
  • Данные которые ты получаешь POST методом надо чистить. strip_tags, mysqli_real_escape_string и тд, это как минимум.

Знак @ перед ф-цией отключает вывод ошибки, это не хорошо

READ ALSO
You have an error in your sql syntax check the manual that corresponds - MySQL

You have an error in your sql syntax check the manual that corresponds - MySQL

Здравствуйте, у меня есть парсер на c# который заносит статьи в бд

369
Как использовать venv в pychram?

Как использовать venv в pychram?

Нужно подключить mysql в djangoЯ делал так pip install mysql-python

368
Поиск(where) обрезает GROUP_CONCAT

Поиск(where) обрезает GROUP_CONCAT

Не могу понять, как сделать запрос, чтобы чертов (WHERE genre_id = 1) не обрезал массив в GROUP_CONCAT

309
Проверка JSON - удаление и добавление в БД

Проверка JSON - удаление и добавление в БД

Нужна помощь с JSON и его взаимодействием с БДИмеется к примеру такой JSON

469