2016-02-23 5 views
0

Я пытаюсь INSERT новую строку в таблицу, используя переменные, как this-Как вставить новую строку в таблицу, где значения являются переменными?

$name = $_POST['name']; 
$surname = $_POST['surname']; 
$email = $_POST['email']; 
$password = $_POST['password']; 
$gender = $_POST['gender']; 
if($name && $surname && $email && $password){ 
    $dbhost = 'localhost'; 
    $dbuser = 'root'; 
    $dbpass = ''; 
    $db = '_erica'; 
    $conn = new mysqli($dbhost, $dbuser, $dbpass,$db); 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    }; 

    $sql = 'INSERT INTO login(id, name, surname, email, sex, password) VALUES (Null,$name,$surname,$email,$gender,$password)'; 

    if ($conn->query($sql) === TRUE) { 
     echo "New record created successfully"; 
    }else { 
     echo "Error: " . $sql . "<br>" . $conn->error; 
    } 

}else{ 
    die('All fields requiret!'); 
}; 

Но это не работает, я пытался добавить кавычки вокруг переменных, как этот

$sql = 'INSERT INTO login(id, name, surname, email, sex, password) VALUES(Null,"$name","$surname","$email","$gender","$password")'; 

еще ничего ... что я мог сделать?

+0

Consult эти следующие ссылки http://php.net/manual/en/mysqli.error.php и http://php.net/manual/en/function.error -reporting.php и примените это к вашему коду. –

+0

Если идентификатор является полем с автоматическим приращением, вы должны просто опустить его – Asur

ответ

1

Попробуйте это,

$sql = 'INSERT INTO login(id, name, surname, email, sex, password) VALUES(NULL,"'.$name.'","'.$surname.'","'.$email.'","'.$gender.'","'.$password.'")'; 

Или (двойные кавычки снаружи вместо одинарные кавычки)

$sql = "INSERT INTO login(id, name, surname, email, sex, password) VALUES(NULL,$name,$surname,$email,$gender,$password)"; 
+0

, и если id является автоматическим приращением, чем? – devpro

+0

Идентификатор должен быть первичным ключом, автоматическим приращением. при вставке NULL он будет автоматически увеличивать значение. –

+0

авто прирост не NULL ??? – devpro

1

Используйте это. Просто измените одиночные кавычки двойные кавычки

$sql = "INSERT INTO login(id, name, surname, email, sex, password) VALUES (Null,$name,$surname,$email,$gender,$password)"; 
+0

, и если id является автоматическим приращением, чем? – devpro

+1

Удалите 'id' и' NULL' '$ sql =" INSERT INTO login (имя, фамилия, адрес электронной почты, пол, пароль) VALUES ($ name, $ surname, $ email, $ gender, $ password) "; – Apoorv

+0

, чем мое голосование за вас .... – devpro

Смежные вопросы