我正在尝试让一个系统检查它是否存在,如果存在,则覆盖,如果不存在,则插入。我在这个代码中有一个错误,但我一生都看不到它。我尝试了两种不同的方法,但都不起作用。
mysqli_query($con,"IF (SELECT COUNT(*) FROM saves
WHERE name='$_POST[name]') > 0
BEGIN
UPDATE saves SET entity='$_POST[saveEntity]' WHERE name='$_POST[name]'
END
ELSE
BEGIN
INSERT INTO saves (`name`, `ID`, `entity`)
VALUES ('$_POST[name]', NULL, '$_POST[saveEntity]')
END");
或
mysqli_query($con,"IF EXISTS(SELECT * FROM saves WHERE name='$_POST[name]')
BEGIN
UPDATE saves SET entity='$_POST[saveEntity]' WHERE name='$_POST[name]'
END
ELSE
BEGIN
INSERT INTO saves (`name`, `ID`, `entity`)
VALUES ('$_POST[name]', NULL, '$_POST[saveEntity]')
END");
您应该在"name"列上设置主键,然后使用如下语法:
插入到保存中(列 1,列 2,列 3,...)值 (1,2,3,...)
在重复键更新实体="您的值";
试试这个,否则你可能不得不调整+'"和'"+ i
mysqli_query($con,"IF EXISTS(SELECT * FROM saves WHERE name='"+$_POST[name]+"')
BEGIN
UPDATE saves SET entity='"
+ $_POST[saveEntity]+ "' WHERE name='"+$_POST[name]+"'
END
ELSE
BEGIN
INSERT INTO saves (`name`, `ID`, `entity`)
VALUES ('"+$_POST[name]+"', NULL, '"+$_POST[saveEntity]+"')
END");
但是对于sql,我只会在不存在
的地方插入然后更新它,我不知道这是我的想法
mysqli_query($con,"
INSERT INTO saves (`name`, `ID`, `entity`)
VALUES ('"+$_POST[name]+"', NULL, '"+$_POST[saveEntity]+"')
where name not in
(SELECT name FROM saves WHERE name)
go
UPDATE saves SET entity='"
+ $_POST[saveEntity]+ "' WHERE name='"+$_POST[name]+"'");