-2

我正在做一个从表单中提取数据的练习,然后将数据输入到数据库中的表中。

我在表单上共有 6 个字段,但表中只注册了前 3 个字段。

表中的数据类型

first_name  varchar(30)
last_name   varchar(30)
pd          varchar(10)
b_month     varchar(2)
b_day       varchar(2)
b_year      varchar(4)

表单的 HTML 代码

    <form action="handle_reg2.php" method="post">
    <p>first name: <input type="text" name="first_name" size="20" /></p>
    <p>last name: <input type="text" name="last_name" size="20" /></p>
    <p>Password: <input type="password" name="pwd" size="10" /></p>
    <p>confirm password: <input type="password" name="confirm" size="10" /></p>
     <select name="month">
    <option value="">Month</option>
    <option value="1">January</option>
     </select> 
     <select name="day">
    <option value="">Day</option>
    <option value="1">1</option>
  </select>
  <input type="text" name="year" value="yyyy" size="4"/>
  </p>

处理表单数据的 PHP 代码

$db_connect = mysql_connect("localhost", "$db_user", "$db_pass");
 $sql = "insert into reg_data (first_name, last_name, pd, b_month, b_day, b_year) 
 values 
 ('$first_name', '$last_name', '$password', '$b_month',
 '$b_day', '$b_year')";

$insert_data = mysql_query ($sql, $db_connect );

请查看我的代码片段并告诉我是什么原因以及如何解决问题。

4

1 回答 1

0

您更改了变量的名称... EG

$byear = $_POST['year'];

$b_year

编辑:

您已更改 Q 并删除了显示您如何命名传入变量 $byear 的代码,然后尝试将其引用为 $b_year。

坚持命名约定,您将减少这些愚蠢的错误。EG 从您的表格到您的数据库:

<input type =text name="b_year" />

然后

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

然后

"insert into mytable (b_year) values ($b_year )";

当然,除了您将列出每个人所说的内容并使用准备好的语句或找到另一种保护您的数据库的方法。

于 2013-02-11T14:07:44.303 回答