2012-03-14 79 views
0

嘿傢伙我以前有類似的問題,但我颳了這個主意。現在基本上我的系統允許我的用戶在那裏輸入數據到數據庫中,如果他們提交數據,數據就會存入數據庫。現在出於某種原因,數據不會去,我與我存儲在我的else語句中的回聲,這是「回聲」稍後再試「;」將值插入數據庫不起作用?

現在我已回到數據庫中,並查看所有文件和有正確的名稱,並將它們放入查詢中,但沒有任何內容存入數據庫。現在你可能會想,在我的代碼中,上面的文件connect.inc.php是什麼,它基本上是一個連接到服務器的php腳本。

這裏是我的代碼的請求看看謝謝:)

<?php 

    //require 'core.inc.php'; 
    include 'connect.inc.php'; 


if(isset($_POST['Username'])&& isset($_POST['Password']) && isset($_POST['PasswordAgain'])&& isset($_POST['Firstname'])&& isset($_POST['Lastname'])){ 

    $username = $_POST['Username']; 
    $password = $_POST['Password']; 

    $password_again = $_POST['PasswordAgain']; 
    $Firstname = $_POST['Firstname']; 

    $password_hash = md5($password); 

    $Lastname = $_POST['Lastname']; 

    if(!empty($username)&& !empty($password) && !empty($password_again) && !empty($Firstname) && !empty($Lastname)){ 



if ($password !== $password_again) { 

      echo "passwords do not match"; 
     } 
     else{ 

      $query = "SELECT username FROM members WHERE username = '$username'"; 
      $query_run = mysql_query($query); 
      if(mysql_num_rows($query_run)==1){ 

       echo "The username ". $username ." is taken"; 

      }else{ 

       $query = "INSERT INTO members VALUES ('','Firstname','Lastname','Username','Password')"; 
       if ($query_run = mysql_query($query)){ 

        echo "Well done"; 


       }else{ 

        echo "Sorry we couldn't register at this time. Please try again later thank you"; 
       } 

      } 

     } 
    } 
    else{ 

     echo "Please fill in all the details thank you "; 

    } 
} 

?> 


<form action="join.inc.php" method="post"> 


    Username: <input type="text" name="Username" value="<?php echo $username; ?>" /><br /> 
    Password: <input type="password" name="Password" /><br /> 
    Password Again: <input type="password" name="PasswordAgain" /><br /> 
    FirstName: <input type="text" name ="Firstname" value="<?php echo $Lastname; ?>" /><br /> 
    LastName: <input type="text" name ="Lastname" value="<?php echo $Firstname ?>" /><br /> 

    <input type="submit" value="SUBMIT" /> 
</form> 

連接腳本

+0

當您遇到此問題時,通常會將查詢字符串回顯到頁面。您不想在生產環境中這樣做,但在開發過程中,您可以快速查看要發送到數據庫的內容。 – 2012-03-14 05:58:36

回答

2

我會建議明確說明在INSERT語句中使用的列。

INSERT INTO members (`field1`, `field2`, ...) 
VALUES ('','Firstname','Lastname','Username','Password') 

此外,您試圖插入的空白值是什麼?如果該字段爲AUTO_INCREMENT字段,則不應將其包含在VALUES聲明中。

+0

仍然沒有影響:( – 2012-03-14 05:41:55

+0

是你的第一個字段auto_increment – 2012-03-14 05:49:49

+0

是的,但我已經刪除了,仍然沒有效果 – 2012-03-14 05:54:45

0

你應該使用這樣的東西。

$query = "insert into members (id,username) values ('','$username')"; 
1

試試這個:

INSERT INTO members (`field1`, `field2`, ...) 
VALUES ('','$Firstname','$Lastname','$Username','$password_hash') 
+0

是的,這是正確的答案:)不錯的一個:) – 2012-03-14 06:12:33

0

IF如下圖所示

INSERT INTO members (`field2`,`field3`,...) 
VALUES ('field2Val','field3Val',...); 
0
password !== $password_again 

應該是你的第一個字段是AUTO_INCREMENT

省略FIELD1

password != $password_again 
0

嘗試改用:

$query = "INSERT INTO members VALUES ('". $Firstname."','". $Lastname. "','" .$username. "','" .$password_hash. "')"; 
$result = mysql_query($query); 
    if (!$result){ 

      echo "Sorry we couldn't register at this time. Please try again later thank you"; 

    }else{ 
      echo "Well done"; 

    } 
0

啓用的error_reporting看看什麼是錯其實是ID第一個字段自動遞增?

如果這是自動增加您的查詢將執行,但如果它不自動增量和設置爲PK只有它不會插入記錄並引發重複鍵錯誤。

希望這有助於