2015-04-05 87 views
0

我的數據庫(MySQL)有一個表members1,列usernamepassword如何在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 2015-04-05 21:49:54

回答

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 2015-04-05 21:48:17

1

你必須在一次插入值:

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

感謝您的幫助。但是你只是省略了''開頭的'。$ _POST [「pass1」]。「'',因爲它不起作用。我相信這只是你的錯字。現在工作。非常感謝!。 +1指導正確的方式! – sps 2015-04-05 21:45:17

相關問題