php; mysql;Как да вмъкна user_id или date_created?

Направих проста форма за регистрация. Как трябва да редактирам този формуляр, за да добавя нещо като: user_id или date_created? Когато добавя колона user_id към PHPMyAdmin, потребителят не може да се регистрира, но когато имам само стойностите: 'First Name'; 'Фамилия' ; 'Електронна поща' ; „Парола“ в базата данни, всичко работи.

    <!DOCTYPE html>
<html>
<head>
    <title>Registration</title>
</head>
<body>
<?php
$lclhost = "localhost";
$pass = "";
$root = "root";
$database = "regis";
$con=mysqli_connect ("$lclhost", "$root", "$pass") or die("connection fail".mysql_error());
mysqli_select_db($con, $database) or die("database fail".mysql_error());
?>
<form method="get">
    First Name : <input type="text" name="fname"><br>
    Last Name : <input type="text" name="lname"><br>
    Email: <input type="text" name="email"><br>
    Password: <input type="Password" name="password">
    <input type="submit" name="btnsubmit">
</form>
<?php 
if (isset($_GET['btnsubmit']))
{
    $fname = $_GET['fname'];
    $lname = $_GET['lname'];
    $email = $_GET['email'];
    $password = $_GET['password'];
    $registration = "INSERT INTO tbl_info values ('".$fname."','".$lname."','".$email."','".$password."')";
    mysqli_query($con,$registration);
    echo "Succes!";
}
?>
</body>
</html>

person Nicolae    schedule 20.03.2017    source източник
comment
Идентификационният ви номер на автоматично увеличаване ли е?   -  person Ashwin Golani    schedule 20.03.2017
comment
добавянето на user_id колона в db прави кода неработещ просто защото това поле също се нуждае от стойност. това, което трябва да направите, е да добавите полето user_id към вашия html изглед и да го изпратите с останалите входове.   -  person Semi-Friends    schedule 20.03.2017
comment
Вашият скрипт е изложен на риск от атака чрез SQL инжектиране Разгледайте какво се случи с Little Bobby Tables дори ако избягвате входове, не е безопасно! Използвайте подготвени параметризирани изрази   -  person RiggsFolly    schedule 20.03.2017


Отговори (1)


Тъй като вашата заявка не указва колони, mysql ще работи само ако броят на стойностите на колоните, които сте предоставили, е точно същият като броя на колоните в базата данни.

Добавянето на допълнителна колона към базата данни ще доведе до прекъсване на заявката, тъй като броят на колоните вече не е същият.

Имате две възможности:

ОПЦИЯ 1: Добавете имена на колони в заявката си:

 "INSERT INTO tbl_info(Firstname, Lastname, EmailAddress, Password)   
  values ('".$fname."','".$lname."','".$email."','".$password."')";  

ОПЦИЯ 2: Винаги се уверявайте, че броят на колоните в базата данни е точно същият като броя на стойностите, които предоставяте в заявката си

Забележка: Ако имате поле за идентификационен номер с автоматично нарастване, не е необходимо да го включвате за първата опция, защото тя автоматично ще добавя стойност, когато вмъкнете запис. Но трябва да го включите за втората опция, подайте празен низ или null като стойност

person Luthando Ntsekwa    schedule 20.03.2017