【发布时间】:2014-04-21 20:03:06
【问题描述】:
我有以下代码,它通过保存输入到表单中的内容从表单发布到数据库。这可行,但我想知道如何才能检查我输入的记录是否已经存在,然后再将其添加为重复项并引发错误。在这种情况下,它应该检查 student_id 是否已经存在。如果存在它应该回显(记录已经存在)
$error1='Add New Intern ';
$error0='No error';
if(isset($_POST['btnaddint']))
{
$student_id = trim($_POST['student_id']);
$comp_name = trim($_POST['comp_name']);
$comp_supervisor = trim($_POST['comp_supervisor']);
$comp_tel = trim($_POST['comp_tel']);
$comp_address = trim($_POST['comp_address']);
$comp_city = trim($_POST['comp_city']);
$intake_date = trim($_POST['intake_date']);
$ass_status = trim($_POST['ass_status']);
if($student_id == '' || $comp_name == '' || $comp_supervisor == '' || $comp_tel == '' || $comp_address == '' || $comp_city == '' || $intake_date == '' || $ass_status == '')
{
$error1=" ERROR - Please make sure all required fields are filled ";
}
else
{
require("server/db.php");
$tbl_name="int_company"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$student = mysql_query("INSERT INTO $tbl_name (student_id, comp_name, comp_supervisor, comp_tel, comp_address, comp_city, intake_date, ass_status) VALUES('".$student_id."','".$comp_name."','".$comp_supervisor."','".$comp_tel."','".$comp_address."','".$comp_city."','".$intake_date."','".$ass_status."')") or die("Query failed:4 ".mysql_error());
$error1=" Record has been added... ";
}
}
【问题讨论】:
-
这不是您问题的答案,但您的代码使用服务器端验证,并不是验证表单的有效方法。它需要往返于服务器并返回。通过 javascript 使用客户端验证要好得多。
-
@Steve 这不是“好得多”。并且不应该使用它来代替服务器端验证。
-
您应该在 student_id 上有一个唯一/主键。之后使用
INSERT ... ON DUPLCATE KEY UPDATE查询