我有一个示例php的输入表单。
<form action="insert.php" method="post">
<table>
<tr>
<td>First Name:</td>
<td><input type="text" id="fname" name="fname" /></td>
</tr>
<tr>
<td>Last Name:</td>
<td><input type="text" id="lname" name="lname" /></td>
</tr>
<tr>
<td>Age:</td>
<td><input type="text" id="age" name="age" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Add Person!" /></td>
</tr>
</table>
</form>
并且insert.php就像这样
<?php
$host = "localhost";
$user = "root";
$pass = "";
$con = mysql_connect($host, $user, $pass);
$db = "phptest";
if(!$con)
{
die("Could not connect: " . mysql_error());
}
mysql_select_db($db,$con);
$sql = "INSERT INTO persons (FirstName,LastName,Age) VALUES ('$_POST[fname]','$_POST[lname]','$_POST[age]')";
mysql_query($sql,$con);
mysql_close($con);
?>
它适用于第一次输入。当我输入其他值并按下提交按钮时,数据不会保存到数据库中。在数据库中,它只显示填充了我的第一个输入的1行。 insert.php的代码有什么问题?感谢。
答案 0 :(得分:2)
也请
echo mysql_error();
在mysql_query()之后知道是否有问题,尽管您的查询似乎很好。
此外,发布表结构可能会有所帮助。 *可能是您忘记在表中设置了一个id为primary_key和auto_increment *
答案 1 :(得分:0)
我最好的猜测是,您将数据传递到其中包含单引号的查询中,这会过早地导致查询中的某个引用字符串结束。
不知道确切的错误是什么,我不能确定。你应该检查mysql_error()
之类的错误。如果您使用它并显示错误消息,我将能够为您提供更多帮助。
直接从用户输入中投掷数据(这是$_POST
包含的内容)是一个非常糟糕的主意。你最好使用PDO和准备好的语句。
我不会再对此再写一遍,我只会引导你找到我前几天写的答案。你可以找到它here。
答案 2 :(得分:0)
在表Id
中创建新字段(例如:persons
)并将其设置为auto_increment
。