Php MYSQL,Insert/Update,if-else语句

Php MYSQL,Insert/Update,if-else语句,php,mysql,Php,Mysql,我在mysqli中使用PHP,在本例中,如果数据库中存在username和lastname,我将尝试更新价格,否则我想插入一个新用户。为什么这不起作用 IF (SELECT name,lastname FROM peoplePrice WHERE name='gus' AND lastname='lw') THEN UPDATE peoplePrice SET price='20' WHERE name='gus' AND lastname='lw'; ELSE INSERT I

我在mysqli中使用PHP,在本例中,如果数据库中存在
username
lastname
,我将尝试更新价格,否则我想插入一个新用户。为什么这不起作用

IF (SELECT name,lastname FROM peoplePrice WHERE name='gus' AND lastname='lw') THEN
    UPDATE peoplePrice SET price='20' WHERE name='gus' AND lastname='lw';
ELSE
    INSERT INTO peoplePrice (name,lastname,price) 
    VALUES ('nisse','johansson','20');
END IF;

除了在存储过程中,MySQL不提供您正在使用的那种条件逻辑。你应该调查一下。。。在重复密钥更新上执行您尝试执行的操作。阅读以下内容:

SELECT
返回行。请看一下使用SELECT COUNT(*)进行尝试,而不是仅仅插入一个随机用户,还是应该将
name
lastname
SELECT
中使用的匹配?您可以在php中执行条件检查,然后执行相关查询。@wolfsgang这不是一个好主意。如果脚本的不同实例并行运行,可能会出现一些条件,导致多次尝试为同一个人创建行。