输入值不会在浏览器中显示,而是显示空白字段


Input values doesnt get display in the browser instead shows blank field

我只需要将表单数据插入mysql数据库&在浏览器中显示。但是,当我填写表格&单击submit,会添加该行,但除了ID字段外没有任何数据,ID字段会自动递增。。即使phpmyadmin中的表看起来也与添加的行相同&空文件。任何建议都将不胜感激。。。

我的html表单看起来像这样,

<table border="1">
  <tr>
    <td align="center">Form Input Students Data</td>
  </tr>
  <tr>
    <td>
      <table>
        <form method="POST" action="data_insert_htmlform.php/">
        <tr>
          <td><label for="Name">Name</label></td>
          <td><input type="text" name="name" size="20">
          </td>
        </tr>
        <tr>
          <td><label for="Age">Age</label></td>
          <td><input type="text" name="age" size="20">
          </td>
        </tr>
        <tr>
          <td><label for="Birth_Date">Birth_Date</label></td>
          <td><input type="text" name="Birth_Date" size="20">
          </td>
        </tr>
        <tr>
          <td><label for="Address"Address</label></td>
          <td><input type="text" name="address" size="40">
          </td>
        </tr>
        <tr>
          <td></td>
          <td align="center">
              <input type="submit" name="submit" value="Sent">
          </td>
        </tr>
        </form>
        </table>
      </td>
    </tr>
</table>

和我的php代码

<?php
error_reporting(E_ERROR | E_PARSE);
$database = 'students';
$continued=mysql_connect("localhost" , "root", "");
if(mysql_select_db($database))
echo ("<br><br>connection to the database succeeds");
else
echo ("connection failed");
/*$name = $_POST['name'];
$age = $_POST['age'];
$birth_date = $_POST['Birth_date'];
$address = $_POST['address'];*/
$insert = "INSERT INTO students_basicinfo(Name, Age, Birth_Date, Address) VALUES ('{$_POST['name']}','{$_POST['age']}' , '{$_POST['Birth_date']}' , '{$_POST['address']}')";
$abc = mysql_query($insert);
if($abc){
    echo("<br>Input data is succeed");
}else{
    echo("<br>Input data is fail");
}
$order = "SELECT * FROM students_basicinfo";
$result = mysql_query($order);
if($result === FALSE) {
die(mysql_error()); // TODO: better error handling
}
echo "<table border='1'>";
    while($data = mysql_fetch_array($result))
    {
        echo "<tr>";
               echo "<td>".$data[ID]."</td>";
               echo "<td>".$data[Name]."</td>";
               echo "<td>".$data[Age]."</td>";
               echo "<td>".$data[Birth_Date]."</td>";
               echo "<td>".$data[Address]."</td>";
        echo "</tr>";
    }
echo "</table>";
?>

关于input name case sensitive 的这个问题

用大写D$_POST['Birth_date']更改为$_POST['Birth_Date']

请尝试以下查询,这将起作用。

$insert = "INSERT INTO students_basicinfo(Name, Age, Birth_Date, Address) VALUES ('{$_POST['name']}','{$_POST['age']}' , '{$_POST['Birth_Date']}' , '{$_POST['address']}')";

替换

'{$_POST['name']}','{$_POST['age']}' , '{$_POST['Birth_date']}' , '{$_POST['address']}'

带有

'".$_POST['name']."','".$_POST['age']."' , '".$_POST['Birth_date']."' , '".$_POST['address']."'

尝试:

 echo "<tr>";
               echo "<td>".$data['ID']."</td>";
               echo "<td>".$data['Name']."</td>";
               echo "<td>".$data['Age']."</td>";
               echo "<td>".$data['Birth_Date']."</td>";
               echo "<td>".$data['Address']."</td>";
        echo "</tr>";

(使用准备好的语句。)

  • 在HTML注释<!-- ... --->中转储该语句,这样您就可以自己尝试了
  • 使用echo mysql_error()检查错误
  • 我不信任日期字段,date?使用"2013-08-31 or '2013-08-31 14_:07/"2013-08-31T14_:07`