php防止数据重复保存,php - 如何防止数据重复? - SO中文参考 - www.soinside.com

如何防止数据重复?

问题描述 投票:0回答:3

我想避免在我的数据库中插入名为username的现有数据,我的代码运行没有错误,但问题是我输入的数据是插入的,即使它已经存在于我的数据库中。请告诉我我的代码缺少什么。

if($_POST["controller"] == "add") {

// validations here

$result = query("SELECT * FROM tbl_employee WHERE surname ='$surname'");

if(empty($_POST["surname"]) && (query($result)>0) ) {

echo 'surname already taken'; die();

}

else {

$age = getAge($_POST["dobMonth"], $_POST["dobDay"], $_POST["dobYear"]);

$result = query("INSERT INTO tbl_employee (carid, surname, firstname, position, department, birthplace, sex, address, contact, codename, birthdate, age, dateAdded) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)", $_POST["modelo"], $_POST["surname"], $_POST["firstname"], $_POST["position"], $_POST["department"], $_POST["birthplace"], $_POST["sex"], $_POST["address"], $_POST["contact"], $_POST["codename"], $_POST["dobYear"] . '-' . $_POST["dobMonth"] . '-' . $_POST["dobDay"], $age, date("Y-m-d"));

if($result === false) {

echo 'error in insert'; die();

}

else {

$row = query("SELECT LAST_INSERT_ID() AS employee_id");

$id = $row[0]["employee_id"];

redirect("employee.php?profile=" . $id); //redirect("employee.php?action=view_all");

}

}

}

php

sql

3个回答

0

投票

试试这个:我希望它能帮助你。

if($result['surname']==$_POST["surname"]) {

echo 'surname already taken'; die();

}

else {

$age = getAge($_POST["dobMonth"], $_POST["dobDay"], $_POST["dobYear"]);

$result = query("INSERT INTO tbl_employee (carid, surname, firstname, position, department, birthplace, sex, address, contact, codename, birthdate, age, dateAdded) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)", $_POST["modelo"], $_POST["surname"], $_POST["firstname"], $_POST["position"], $_POST["department"], $_POST["birthplace"], $_POST["sex"], $_POST["address"], $_POST["contact"], $_POST["codename"], $_POST["dobYear"] . '-' . $_POST["dobMonth"] . '-' . $_POST["dobDay"], $age, date("Y-m-d"));

if($result === false) {

echo 'error in insert'; die();

}

0

投票

在检查为空之前,您可能需要先检查它是否为NULL

0

投票

你需要改变你的代码。我希望这会对你的问题有所帮助。你的代码问题首先是它会检查姓氏值是否为空,如果你发送姓氏值,它将使条件为假,因为“和” “条件和你的其他声明将被执行

if($_POST["controller"] == "add") {

// validations here

$surname=(empty($_POST["surname"])?null:$_POST["surname"]);

$result = query("SELECT * FROM tbl_employee WHERE surname ='$surname'");

if(empty($_POST["surname"]) ){

echo 'surname is Empty'; die();

}

elseif((query($result)>0) )

{

echo 'surname already taken'; die();

}

else {

$age = getAge($_POST["dobMonth"], $_POST["dobDay"], $_POST["dobYear"]);

$result = query("INSERT INTO tbl_employee (carid, surname, firstname, position, department, birthplace, sex, address, contact, codename, birthdate, age, dateAdded) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?)", $_POST["modelo"], $_POST["surname"], $_POST["firstname"], $_POST["position"], $_POST["department"], $_POST["birthplace"], $_POST["sex"], $_POST["address"], $_POST["contact"], $_POST["codename"], $_POST["dobYear"] . '-' . $_POST["dobMonth"] . '-' . $_POST["dobDay"], $age, date("Y-m-d"));

if($result === false) {

echo 'error in insert'; die();

}

else {

$row = query("SELECT LAST_INSERT_ID() AS employee_id");

$id = $row[0]["employee_id"];

redirect("employee.php?profile=" . $id); //redirect("employee.php?action=view_all");

}

}

}

热门问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值