2015-04-05 2 views
0

Моя база данных (MySQL) имеет таблицу members1 с столбцами username и password.Как вставить значение для двух столбцов одной и той же строки в таблице MySQL

Я беру имя пользователя и пароль с веб-страницы html и использую php для обновления базы данных.

Ниже приведен код PHP:

$flag = 0; 
$sql = "SELECT username FROM members1"; 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) 
    { 
     while($row = $result->fetch_assoc()) 
     { 
      if ($row["username"] == $_POST["username"]) 
      {     
       { 
        $flag = 1; 
        echo "<h3>This username already exists.</h3>"; 
        echo "Please try with a different username.<br/>"; 
        echo "<br/><a href=sign_up.html>Try again</a>"; 
        break; 
       }     
      } 
     } 
     /* If username is unique */ 
     if ($flag == 0) 
     { 
      /* PROBLEM LIES HERE */ 
      $sql = "INSERT INTO `dbname`.`members1` (`username`) VALUES ('" . $_POST["username"] . "')" ; 
      $sql2 = "INSERT INTO `dbname`. `members1` (`password`) VALUES ('" . $_POST["pass1"] . "')"; 
      $conn->query($sql); 
      $conn->query($sql2); 
      echo "<h3>Signup successfull.</h3>You can now login with your username and password.";    
     } 
    } 
$conn->close(); 

Но после того, как имя пользователя поддавки и пароль в передней части, и когда я проверить базу данных, я вижу, что имя пользователя вводится в одной строке, и пароль вставляется следующий ряд.

Я работаю в своем собственном интерфейсном проекте, но я думал, что по крайней мере добавлю функцию регистрации. Поэтому я просто последовал за некоторыми краткими учебниками, доступными в Интернете, чтобы сделать это. Думаю, я допустил ошибку.

Любой может предложить, как исправить это? Я знаю, что мне нужно изменить $sql и $sq2, но не знаю, что делать.

спасибо.

+0

Вы должны добавить предложение where ко второй вставке для поиска пользователя. – Typo

ответ

2

Вставка может с курса заполнить несколько полей одновременно:

$sql = "INSERT INTO `dbname`.`members1` (`username`,`password`) VALUES ('" . $_POST["username"] . "','" . $_POST["pass1"] . "')" ; 
$conn->query($sql); 

Я хотел бы также предложить Вам сообщить о where close

$sql = "SELECT username FROM members1 WHERE username = '".$_POST["username"]."'"; 

Или попробуйте лучше и добавьте unique index на свое имя пользователя f ield

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

+0

Спасибо. Работаю сейчас. Али уже сказал, как это сделать, хотя Али как-то забыл цитату («), из-за которой он не работал. Не могли бы видеть, что цитата отсутствовала после прохождения вашего ответа. Благодарю. – sps

1

Вы должны ввести значения сразу:

$sql = "INSERT INTO `dbname`.`members1` (`username`,`password`) VALUES ('" . $_POST["username"] . "'," . $_POST["pass1"] . "')" ; 
+0

Спасибо за помощь. Однако вы просто опустили «в начале». $ _POST ["pass1"]. "'', Из-за которого он не работал. Я считаю, что это была просто опечатка от вас. Работаю сейчас. Большое спасибо!. +1 для правильного направления! – sps

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