Php 仅向数据库中插入一次值
我的数据库中有一条记录Php 仅向数据库中插入一次值,php,Php,我的数据库中有一条记录 <?php if(isset($_POST['submit'])) { $tadd=$_POST["tadd"]; //getting values $pname=$_POST["pname"]; $date=$_POST["date"]; $result=mysql_query("insert into pannel(tadd,pname,date)values('$tadd','$pname','
<?php if(isset($_POST['submit']))
{
$tadd=$_POST["tadd"]; //getting values
$pname=$_POST["pname"];
$date=$_POST["date"];
$result=mysql_query("insert into pannel(tadd,pname,date)values('$tadd','$pname','$date')");
echo "<script type='text/javascript'>
alert('Quotation Generated Successfully!')
</script>";
} ?>
<center>
<h1>Title</h1>
</center>
<form name="form" method="post" action="" onSubmit="submit;">
<center><table border="0" cellspacing="0" style="width:350px">
<tr> <td><b>To Address</td> <td><textarea name="tadd" rows="5"
cols="30"></textarea></td></tr>
<tr> <td><b>Project Name</td> <td><input type="text" name="pname" required></td></tr>
<tr> <td><b>Date</td> <td><input type="text" name="date"
id="datepicker" required></td></tr>
<tr> <td colspan="2" align="center"><input type="submit" name="submit"
value="submit"/></td> </tr></center> </table> </form>
若我再次向数据库中插入值,那个么它应该已经插入了数据
请帮助我解决这个问题您可以使用mysql_num_rows来实现这一点,这是一种方法,我相信其目标是避免重复 旁注:您还可以将列设置为唯一,以避免重复 注意:我以pname列为例。例如,由您检查哪一个用户名始终是唯一的 id tadd pname date 1 hello vvv 22/10/2014 请清理您的数据:
$query = "SELECT * FROM pannel where pname = '".$pname."'";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0){
echo "Already exists.";
}
else{
mysql_query("insert into pannel (tadd, pname,date) values ('$tadd','$pname','$date')");
}
对其他人也一样
甚至更好,使用,或
它们更安全,因为您当前的代码是开放的。
脚注:
你应该摆脱onSubmit=submit;以你的形式。正如评论中所述,它不会做任何事情
编辑:
应该知道已经插入了哪些数据?您可以按照前面所述使列唯一,或者您可以使用mysql_num_rows检查SELECT,如果使用PDO,则检查mysqli_num_rows或rowCount。如果数据存在于特定行中,则基本上会中止。还有很多其他方法可以做到这一点;这些只是少数。您不应该使用mysql,因为mysql已被删除。请使用mysqli或PDO,您的意思是希望这样做覆盖当前数据而不添加新行吗?HTML格式不正确,表和中心标记嵌套不正确。它也是非常老式的表,用于数据,而不是表单,中心标记是属于过去的东西。onSubmit属性也不会做任何事情。b标签未关闭。mysql_查询函数已被弃用。在使用POST变量之前,您没有检查它们是否已设置。和嗯,你应该找到一个更新的教程。@vish description not working。您是否确实连接到数据库?它将插入多个数据库times@vish一次插入多次,或者意味着您仍然可以输入重复数据?id tadd pname date 1 hello vvv 22/10/2014 2 hi bbb 22/4/2014@vish对不起,我不明白你的意思。请详细解释。
$tadd = mysql_real_escape_string($_POST["tadd"]);
<?php
// assuming DB connection has been made.
if(isset($_POST['submit'])) {
$tadd= mysql_real_escape_string($_POST["tadd"]);
$pname= mysql_real_escape_string($_POST["pname"]);
$date= mysql_real_escape_string($_POST["date"]);
$query = "SELECT * FROM pannel where pname = '".$pname."'";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0){
echo "Already exists.";
exit;
}
else{
mysql_query("insert into pannel (tadd, pname,date) values ('$tadd','$pname','$date')");
echo "<script type='text/javascript'>alert('Quotation Generated Successfully!')</script>";
}
} // brace for if(isset($_POST['submit']))
?>
<!DOCTYPE html>
<head></head>
<body>
<center><h1>Title</h1></center>
<form method="post" action="">
<div align="center">
<center>
<table border="0" cellspacing="0" style="width:350px">
<tr> <td><b>To Address</td> <td><textarea name="tadd" rows="5" cols="30"></textarea></td></tr>
<tr> <td><b>Project Name</td> <td><input type="text" name="pname" required></td></tr>
<tr> <td><b>Date</td> <td><input type="text" name="date" id="datepicker" required></td></tr>
<tr> <td colspan="2" align="center">
<input type="submit" name="submit" value="submit"/>
</td> </tr>
</table>
</center>
</div>
</form>
</body>
</html>