2013-04-25 82 views
-1

我能夠連接到MySQL數據庫,我創建了一個名爲attorney_users的表。我想知道我失蹤或做錯了什麼?我在下面發佈我的功能代碼。當我註冊用戶它確認成功,但表不更新。我可以連接到MySQL數據庫,但我的表不更新

<?php 
    require_once('appvars.php'); 
    require_once('connectvars.php'); 

    // Connect to the database 
    $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 

    if (isset($_POST['submit'])) { 
    // Grab the profile data from the POST 
    $username = mysqli_real_escape_string($dbc, trim($_POST['username'])); 
    $firstname = mysqli_real_escape_string($dbc, trim($_POST['firstname'])); 
    $lastname = mysqli_real_escape_string($dbc, trim($_POST['lastname'])); 
    $firmname = mysqli_real_escape_string($dbc, trim($_POST['firmname'])); 
    $email = mysqli_real_escape_string($dbc, trim($_POST['email'])); 
    $password = mysqli_real_escape_string($dbc, trim($_POST['password'])); 
    $password2 = mysqli_real_escape_string($dbc, trim($_POST['password2'])); 

    if (!empty($username) && !empty($password) && !empty($password2) && ($password == $password2)) { 
     // Make sure someone isn't already registered using this username 
     $query = "SELECT * FROM attorney_users WHERE username = '$username'"; 
     $data = mysqli_query($dbc, $query); 
     if (mysqli_num_rows($data) == 0) { 
     // The username is unique, so insert the data into the database 
     $query = "INSERT INTO attorney_users (username, firstname, lastname, firmname, email, password, date) VALUES ('$username', '$firstname', '$lastname', $firmname, $email, SHA('$password'), NOW())"; 
     mysqli_query($dbc, $query); 

     // Confirm success with the user 
     echo '<p>Your new account has been successfully created. You\'re now ready to <a href="index.php">log in</a>.</p>'; 

     mysqli_close($dbc); 
     exit(); 
     } 
     else { 
     // An account already exists for this username, so display an error message 
     echo '<p class="error">An account already exists for this username. Please use a different username.</p>'; 
     $username = ""; 
     } 
    } 
    else { 
     echo '<p class="error">You must enter all of the sign-up data, including the desired password twice.</p>'; 
    } 
    } 

    mysqli_close($dbc); 
?> 
<div id="main-wrapper"> 
      <div id="register-wrapper"> 
       <form method="post" action = "<?php echo $_SERVER['PHP_SELF'];?>"> 
       <fieldset> 
        <ul> 
         <label for="username">Username : </label> 
         <input type="text" id="username" name = "username" value = "<?php if (!empty($username)) echo $username; ?>" /> 

         <label for="firstname">First Name : </label> 
         <input type="text" id="firstname" name = "firstname" /> 

         <label for="lastname">Last Name : </label> 
         <input type="text" id="lastname" name = "lastname" /> 

         <label for="firmn">Firm Name : </label> 
         <input type="text" id="firmname" name = "firmname" /> 

         <label for="email">Email : </label> 
         <input type="text" id="email" name = "email" /> 

         <label for="password">Password : </label> 
         <input type="password" id="password" name="password" /> 

         <label for="password2">Verify Password : </label> 
         <input type="password" id="password2" name="password2" /> 

         </li> 
         <li class="buttons"> 
         <input type="submit" value="Register" name="submit" /> 
          <input type="button" name="cancel" value="Cancel" onclick="location.href='index.php'" /> 
        </li> 
        </ul> 
       </fieldset> 
       </form> 
      </div> 
     </div> 

    </body> 
</html> 
+0

是它顯示任何錯誤 – Rafee 2013-04-25 09:39:14

+0

不,它表示用戶已成功創建,您可以登錄。mysqli中的表仍爲空 – Alwina 2013-04-25 09:54:09

回答

0

datemysql保留,使用`各地列名

$query = "INSERT INTO attorney_users (`username`, `firstname`, 
`lastname`, `firmname`, `email`, `password`, `date`) 
VALUES ('$username', '$firstname', '$lastname', $firmname, 
$email, SHA('$password'), NOW())"; 

爲什麼您使用mysqli_real_escape_string轉義,您可以在這裏使用事先準備好的聲明。

編輯

用這個查詢檢查錯誤

$data = mysqli_query($dbc, $query) or die(mysqli_error()); 
+0

我已更改日期。仍然確認註冊,但表格是空的! – Alwina 2013-04-25 11:17:57

+0

@Alwina迴應您的查詢並查看它生成的查詢。 – 2013-04-25 11:19:15

+0

我做過了,說是返回一個空結果集 – Alwina 2013-04-25 11:54:02

0

改變您的$查詢從

$query = "INSERT INTO attorney_users (username, firstname, lastname, firmname, email, password, date) VALUES ('$username', '$firstname', '$lastname', $firmname, $email, SHA('$password'), NOW())"; 

$password = SHA1($password); 
$query = "INSERT INTO attorney_users (`username`, `firstname`, `lastname`, `firmname`, `email`, `password`, `date`) VALUES ('{$username}', '{$firstname}', '{$lastname}', '{$firmname}', '{$email}', '{$password}', NOW())"; 
+0

並且在更改爲此之後,此查詢將失敗,因爲'date'是'mysql'中的保留字。 – 2013-04-25 09:43:22

+0

@YogeshSuthar ..同意沒有注意到日期字段..我更關注插入值..現在修正.. thnx – Dinesh 2013-04-25 09:52:34

+0

已根據上述改變了一切,並將'日期'更改爲'reg_date'。仍然說用戶成功創建你可以登錄,但表仍然是空的! – Alwina 2013-04-25 10:03:30