Вставка данных с помощью PHP из формы в базу данных MySQL

Я создал HTML-форму, которая должна будет вставить данные, которые были введены в форму прямо в таблицу в mySQL.

newuser.PHP-файл

    <?php
//including the connection page
include('./DB_Connect.php');

//get an instance
$db = new Connection();

//connect to database
$db->connect();

  //fetch username and password
  $usertype =  $_POST['userType'];
  $firstname =  $_POST['firstName'];
  $lastname =  $_POST['lastName'];
  $username =  $_POST['userName'];
  $password =  $_POST['password'];
  $address1 =  $_POST['add1'];
  $address2 =  $_POST['add2'];



  //write the sql statement
  $query = "INSERT INTO USERS (usertype, fname, lname, username, password, add1, add2)
  VALUES ('$usertype', '$firstname', '$lastname', '$username', '$password', '$address1', '$address2')";




mysql_query($query,$db);



if (($query) == TRUE) {
  echo "New record created successfully";
   header("Location: login.php", true);
   exit();
}
 else
{
  echo "Error: " . $sql . "<br>" . $conn->error;
   header("Location: register.php", true);
 exit();
}



  //close once finished to free up resources
  $db->close();


?>

С помощью следующей формы html:

    <form action="newuser.php" method="POST" class="form" id="registerForm">
        <label> Type of user: </label> <br>
        <input type="radio" name="userType"  id="itemSeeker">Item Seeker    </input>
        <input type="radio" name="userType"  id="itemDonor">Item Donor </input>
        <input type="radio" name="userType"  id="peopleSeeker">People Seeker </input>
        <input type="radio" name="userType"  id="peopleDonor">People Donor </input>
        <br>
        <br>



        <div class="form-inline">
            <div class="form-group">
                <input type="text" name="firstName" placeholder="First Name: "  align="center" class="form-control" ></input>
            </div>
            <div class="form-group">
                <input type="text" name="lastName" placeholder="Last Name: "  align="center" class="form-control" ></input>
            </div>
        </div>
<br>

        <input type="text" name="email" placeholder="Email Address: "align="center" class="form-control" ></input>
    <br>



    <div class="form-inline">
            <div class="form-group">
                    <input type="text" name="userName" placeholder="Username: " align="center" class="form-control" ></input>
            </div>
            <div class="form-group">
                    <input type="password" name="password" placeholder="Password: " align="center" class="form-control" ></input>
            </div>
    </div>
    <br>

  <!-- <label> Address 1: </label>-->
        <input type="text" name="add1" placeholder="Address 1: " align="center" class="form-control" ></input>
  <!-- <label> Address 2: </label>-->
        <input type="text" name="add2" placeholder="Address 2: " align="center" class="form-control" ></input>
        <br>
  <button class="btn btn-primary" name="submitReg" type="submit">Submit</button><br>
  <br>
  <a href="login.php" >Already have an account?</a>

</form>

пользовательская таблица

моя таблица в SQL

Эти два блока кода и код, с которым я работаю.

Моя проблема заключается в том, что при отправке формы данные фактически не вводятся в таблицу. Обратите внимание, что первое представление действительно сработало. Все материалы после первого не вводятся в базу данных.

Я не совсем уверен, что не так с моим кодом, чтобы он не работал. Он идет к ‘ login.php ‘ страница, которая означает, что нет никаких ошибок и запрос представлен правильно.

Кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно, спасибо.

1 ответ

  1. прямо сейчас у вас есть много больше проблем, чем ваша проблема вставки. ваш код абсолютно небезопасен. (MySQL инъекции).

    Не используйте mysql_ * функции используйте pdo вместо подготовленных заявлений!

    вы выводите пробелы перед отправкой заголовка вы не можете отправить заголовок, если у вас есть выход. ваш редирект не будет работать. dont relay on a clientside redirect use may have it disabled so output a link where you want the user to go.

    anotherthing ваши переключатели не имеют значения проверить синтаксис html
    var_dump ($_POST) и проверить, если вы отправляете все. также проверьте наличие переменных isset или empty befor assign. сделайте какую-то проверку.

    посмотрите на некоторые фреймворки php они обеспечивают гораздо большую гибкость и проверку ошибок

    не изобретайте колесо, написав everthing самостоятельно в течение 10 или более лет после процедурного пути