2010-01-30 149 views
5

所以我有這個註冊腳本:如何插入表單數據到MySQL數據庫表

的HTML:

<form action="register.php" method="POST"> 
    <label>Username:</label> <input type="text" name="username" /><br /> 
    <label>Password:</label> <input type="text" name="password" /><br /> 

    <label>Gender:</label> 
    <select name="gender"> 
     <optgroup label="genderset"> 
     <option value="Male">Male</option> 
     <option value="Female">Female</option> 
     <option value="Hermaphrodite">Hermaphrodite</option> 
     <option value="Not Sure!!!">Not Sure!!!</option> 
     </optgroup> 
    </select><br /> 
<input type="submit" value="Register" /> 
</form> 

的PHP/SQL:

<?php 

$username = $_POST['username']; 
$password = $_POST['password']; 
$gender = $_POST['gender']; 

mysql_query("INSERT INTO registration_info (username, password, gender) VALUES ('$username', '$password', '$gender') 
") 

?> 

的問題是,在用戶名和密碼會被插入到「registration_info」表中。但是選擇下拉菜單中的性別輸入不會。有人能告訴我如何解決這個問題,謝謝。

+0

永遠不會永遠把形式參數放入這樣的查詢中。嘗試綁定參數(http://uk.php.net/manual/en/mysqli.prepare.php)而不是 – 2010-01-30 22:40:32

+0

是的,我知道這並不安全,我只是練習基本的,這個腳本永遠不會去在線:) – Richard 2010-01-30 22:45:38

+2

您可能想要做一個print_r($ _ POST)並查看數據如何進入您的腳本,將使它易於調試。 – Erik 2010-01-30 23:50:22

回答

0

你沒有給出任何選項的值,所以只有一個空字符串被插入。

+0

對不起,當我在這裏重寫了腳本時,我忘了這麼做,原來我在每個選項中都有值,但它仍然不起作用。 – Richard 2010-01-30 22:42:50

0

您需要在HTML中設置列表項中的值屬性。

例如

<option value="Male">Male</option> 
+0

對不起,當我在這裏重寫了腳本時,我忘了這麼做,原來我在每個選項中都有值,但它仍然不起作用。 – Richard 2010-01-30 22:42:07

0
  1. 你們這裏有沒有password輸入。
  2. 您的genderselect box的選項沒有值。
  3. 使用mysql_escape_string至少

    $用戶名=函數mysql_escape_string($ _ POST [ '用戶名']);

或解析到int如果你除了int值。

$id = (int) $_POST['id']; 
0

< PHP 回波的var_dump($ _ POST [ '性別'])?; ? >

這是否告訴你什麼?也許你的性別數據類型(在你的表中)與你投入的內容不兼容?例如,它可能是ENUM('M','F')。

1

檢查數據庫中的數據類型,可能存在不匹配

+0

嘗試手動通過phpmyadmin運行查詢嗎? – 2012-06-30 08:43:34

-1

創建一個變量說,$ GEND在PHP文件。

然後,

$ gend = $ _ POST ['gender'];

然後,繼續:

的mysql_query( 「INSERT INTO registration_info(用戶名,密碼,性別)VALUES( '$用戶名', '密碼$', '$ GEND') 」);

試試這個。

+0

這不回答這個問題。它與已提供的代碼中的OP沒有區別。 – Tristan 2016-01-31 00:18:59

1

試試這一個,如果你在數據庫中採取性別字段作爲整數

<select name="gender"> 
    <optgroup label="genderset"> 
    <option value="1">Male</option> 
    <option value="2">Female</option> 
    <option value="3">Hermaphrodite</option> 
    <option value="4">Not Sure!!!</option> 
    </optgroup> 
</select> 

然後選擇價值被插入到數據庫

-1

有兩個選項你的問題: -

1) If you want to store the gender value in your database then change the datatype of gender field to varchar and then try again 

2) If your gender field is integer in database then you have to make changes in select option value like following 

<select name="gender"> 
    <optgroup label="genderset"> 
    <option value="1">Male</option> 
    <option value="2">Female</option> 
    <option value="3">Hermaphrodite</option> 
    <option value="4">Not Sure!!!</option> 
    </optgroup> 
</select> 

第二個選項與@​​sneha建議相同。

它可以幫助你。

+0

爲什麼投票表決? – 2016-05-27 11:25:44