仅将值插入数据库一次

时间:2014-10-14 03:05:33

标签: 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','$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>

我的数据库中有一条记录

id  tadd   pname    date
1    hello  vvv      22/10/2014

如果我再次将值插入数据库,则应该已插入数据

请帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

您可以使用mysql_num_rows()实现此目的,这是实现此目的的一种方式,我相信其目标是避免重复。

旁注:您还可以将列设置为UNIQUE以避免重复。

N.B。:我使用pname列作为示例。例如,您可以根据用户名检查哪一个对于用户名始终是唯一的。

$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')");
}

清理您的数据:

$tadd = mysql_real_escape_string($_POST["tadd"]);

并为其他人做同样的事。

更好的是,使用mysqli with prepared statementsPDO with prepared statements

  • 他们更安全,因为您现有的代码向SQL injection开放。

<强> 脚注:

您应该在表单中删除onSubmit="submit;"。正如评论中所述,它不会做任何事情。


修改

<?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>