如何将表单数据插入MySQL数据库表

时间:2010-01-30 22:37:31

标签: php mysql insert

所以我有这个注册脚本:

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”表就好了。但是,选择下拉菜单中的性别输入不会。有人可以告诉我如何解决这个问题,谢谢。

8 个答案:

答案 0 :(得分:1)

检查数据库中的数据类型,可能存在不匹配

答案 1 :(得分: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>

然后将选定的值插入数据库

答案 2 :(得分:0)

您没有给任何选项赋值,因此只插入一个空字符串。

答案 3 :(得分:0)

您需要在HTML中的列表项中设置value属性。

e.g。

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

答案 4 :(得分:0)

  1. 此处没有password输入。
  2. 您的gender select box个选项没有值。
  3. 至少使用mysql_escape_string

    $ username = mysql_escape_string($ _ POST ['username']);

  4. 如果您除int值以外,请

    或解析为int

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

答案 5 :(得分:0)

&LT; PHP   echo var_dump($ _ POST ['gender']); ?&GT;

这能告诉你什么吗?也许你的性别数据类型(在你的表中)与你投入的内容不兼容?例如,它可能是一个ENUM('M','F')。

答案 6 :(得分:-1)

在php文件中创建一个变量say,$ gend。

然后,

$ GEND = $ _ POST [ '性别'];

然后,继续:

mysql_query(“INSERT INTO registration_info(用户名,密码,性别)VALUES('$ username','$ password','$ gend') “);

试试这个。

答案 7 :(得分:-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建议相同。

它可能对你有帮助。

相关问题