如果表FINES中存在具有所需值的行,那么我只想更新字段 否则我想在表格中添加一个新行。
if(mysql_query(“SELECT EXISTS(SELECT * FROM罚款WHERE SId ='$ sid'和Semester ='$ sem')”)> = 1)
mysql_query("UPDATE fines SET fines.TFine=fines.TFine+'$fine' WHERE SId='$sid' AND Semester='$sem'");
其他
mysql_query("INSERT INTO fines(SId, Semester, TFine, Flag) VAlUES('$sid','$sem', '$fine', 0)");
但if条件不起作用!!请帮忙
答案 0 :(得分:1)
使用MySQL的INSERT ... ON DUPLICATE KEY UPDATE
,如果记录已存在,则已经更新记录,如果不存在则。
您需要做的第一件事是在一列或多列上指定unique
约束
ALTER TABLE fines ADD CONSTRAINT tb_uq UNIQUE (SId, Semester)
执行完语句后,您可以简单地创建一个这样的语句,
INSERT INTO fines(SId, Semester, TFine, Flag)
VALUES ('$sid','$sem', '$fine', 0)
ON DUPLICATE KEY UPDATE TFine = TFine + '$fine';