在php中更新行的值时,如何控制mySQL中的数据不重复
问题是,当我从update.php页面更新一行时,可能会使用之前插入到表中的相同电子邮件和滚动更新一行。 我想添加一些条件,以帮助我防止重复相同的电子邮件和滚动在php中更新行的值时,如何控制mySQL中的数据不重复,php,mysql,duplicates,Php,Mysql,Duplicates,问题是,当我从update.php页面更新一行时,可能会使用之前插入到表中的相同电子邮件和滚动更新一行。 我想添加一些条件,以帮助我防止重复相同的电子邮件和滚动 $exist_query = mysqli_query($link, "SELECT * FROM tbl_student WHERE st_email = '$_POST[email]'"); $row_cnt = mysqli_num_rows($exist_query); if($r
$exist_query = mysqli_query($link, "SELECT * FROM tbl_student WHERE st_email = '$_POST[email]'");
$row_cnt = mysqli_num_rows($exist_query);
if($row_cnt>=1){
throw new Exception('Email already exists');
}
else {
$query = "UPDATE tbl_student SET st_name = '$_POST[name]', st_roll = '$_POST[roll]', st_email = '$_POST[email]' WHERE id = $id";
$query_run = mysqli_query($link,$query);
$success_message = 'Data has been updaed successfully';
}
使用这些代码之后
我不能更新这些字段中的任何一个。
我想在不复制卷和电子邮件地址的情况下更新数据。
我该怎么做
更重要的是,当我将st_roll和st_email的索引更改为UNIQUE时,它可以在不复制roll和email的情况下工作。在做了独特的我尝试了这个代码
$query = "UPDATE tbl_student SET st_name = '$_POST[name]', st_roll = '$_POST[roll]', st_email = '$_POST[email]' WHERE id = $id";
$query_run = mysqli_query($link,$query);
if($query_run){
$success_message = 'Data has been updaed successfully';
}
else {
throw new Exception('Data already exists');
}
我只能说数据已经存在。
但我想更具体地说,电子邮件是重复的还是卷号是重复的?我可以申请什么条件更具体
注意:很抱歉我的英语不好。发电子邮件
因此,任何电子邮件地址都不能重复输入
使用以下命令,可以使列meail唯一
ALTER TABLE student
ADD UNIQUE (email);
你好你能给我看看你试过的代码吗?无论如何,要更新现有行,需要使用
update
而不是INSERT
。请检查此页:。干杯这回答了你的问题吗?