繁体   English   中英

如果使用mysql存在更新ELSE INSERT

[英]IF EXISTS UPDATE ELSE INSERT using mysql

我们正在为我们的大学开发一个应用程序,在收费模块中,我们需要检查学生记录是否已经存在。 如果学生记录不存在,我们需要插入记录,否则我们需要更新记录。我使用的代码如下:

if (isset($_POST['submit'])) {

  for($i=0; $i<count($_POST['mca_1_autogen_id']); ++$i){
   $sql=mysqli_query($conn,"UPDATE `fees_mca_1` set `Fees_paid`='{$_POST['Fp'][$i]}' where Register_number='{{$_POST['Regno'][$i]}'");
}
header("Location:mca1_fees_report.php");
 if(mysqli_affected_rows($conn) == 0){
 for($i=0; $i<count($_POST['mca_1_autogen_id']); ++$i){
   $sql=mysqli_query($conn,"INSERT INTO `fees_mca_1`(`Register_number`,`Student_name`,`Total_fees`,`Fees_paid`) VALUES ('{$_POST['Regno'][$i]}','{$_POST['Sname'][$i]}','{$_POST['Fees'][$i]}','{$_POST['Fp'][$i]}')") or die("Error: ".mysqli_error($dbc));
}}
header("Location:mca1_fees_report.php");
echo "Record Added Sucessfully";
 }

我也试过了但是没用

if (isset($_POST['submit'])) {

for($i=0; $i<count($_POST['mca_1_autogen_id']); ++$i){
   $sql=mysqli_query($conn,"INSERT INTO `fees_mca_1`(`Register_number`,`Student_name`,`Total_fees`,`Fees_paid`) VALUES ('{$_POST['Regno'][$i]}','{$_POST['Sname'][$i]}','{$_POST['Fees'][$i]}','{$_POST['Fp'][$i]}') ON DUPLICATE KEY UPDATE `Fees_paid` = VALUES({$_POST['Fp'][$i]})");
}
header("Location:mca1_fees_report.php");
echo "Record Added Sucessfully";
  }

您应该改用以下代码:

INSERT INTO t1 (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

UPDATE t1 SET c=c+1 WHERE a=1;

它将检查记录是否重复,然后将对其进行更新

这是Sql Query官方链接

也请检查ON DUPLICATE KEY

您应该这样使用:

INSERT INTO table(column_list)  VALUES(value_list) ON DUPLICATE KEY UPDATE column_1 = new_value_1, column_2 = new_value_2, …;

你应该试试这个

在重复键更新中将表(a,b,c)值(1,2,3),(4,5,6)插入表c = VALUES(a)+ VALUES(b);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM