不从用户表单向数据库插入重复值

时间:2011-11-30 04:27:33

标签: php forms jsp

我需要将用户表单中的名称插入SQL数据库。为此我有两个程序sql.php能够将名称插入数据库。 form.jsp为用户表单输入名称。 使用odbc连接MSSQL数据库

  $connect = odbc_connect('Sedbase','susername', 'pwd');

用sql.php编写的这个查询能够将值插入数据库

   $query=("INSERT INTO namedb(name) VALUES ('$_POST[name]')");
   $result = odbc_exec($connect, $query);}

form.jsp包含以下代码

 <html>
  <head>
  <script type="text/javascript">
   function validateform()
  {var y=document.forms["Form"]["comp"].value;
if (y==null || y=="")
    {
alert("");
  return false;
}
 }
  </script>
   </head>

当我插入名称时,它应该接受并存储到数据库中。正在发生。但当我插入相同的名称也接受。我不想再次插入相同的名称。它不应该接受相同的名称,它应该通过一些警报或文本消息向用户发送已存在于DB中的名称的消息。

2 个答案:

答案 0 :(得分:0)

您应该在需要的SQL架构中使用 UNIQ 或等效文件。

然后,如果是特定的返回代码,表示 DUPLICATE KEY ,您可以使用alert()通过javascript通知用户,或者只使用 SELECT INSERT -ing

之前的陈述

答案 1 :(得分:0)

你可以用两种方式做到这一点

  1. 在列上添加唯一约束
  2. 在插入
  3. 之前检查名称是否已存在

    您的脚本易于进行sql注入的任何一种方式。请清理您的用户输入:http://en.wikipedia.org/wiki/SQL_injection#Enforcement_at_the_coding_level