簡體   English   中英

如果其他mysql語法

[英]if else mysql syntax

有人可以幫我這個語法嗎? 我不知道我在做什么錯!

當我嘗試執行此代碼時:

IF EXISTS(SELECT * FROM user WHERE user_username = '$user_username') 
THEN
UPDATE user SET user_name='$name',user_profession='$profession',user_address='$address',user_avatar='$NewImageName'
ELSE 
INSERT INTO user (user_name,user_profession,user_address,user_avatar) VALUES ('$name','$profession','$address','$NewImageName';

我收到以下錯誤:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS(SELECT * FROM user WHERE user_username = '111') THEN UPDATE user SE' at line 1

我不知道這段代碼有什么問題!

您是否嘗試過在INSERT INTO...語句之后添加END IF

您需要ON DUPLICATE KEY

INSERT INTO user (user_name,user_profession,user_address,user_avatar)
VALUES ('$name','$profession','$address','$NewImageName'
   ON DUPLICATE KEY
UPDATE user SET user_name='$name',
                user_profession='$profession',
                user_address='$address',
                user_avatar='$NewImageName'

您必須將user_name列設置為UNIQUE

如果不是唯一的,請執行此操作

ALTER IGNORE TABLE user ADD UNIQUE (user_name);

以下代碼對我有用:

$result = mysql_query("SELECT * FROM user WHERE user_username = '$user_username'");
if( mysql_num_rows($result) > 0) {
    mysql_query("UPDATE user SET user_name='$name',user_profession='$profession',user_address='$address',user_avatar='$NewImageName' WHERE user_username = '$user_username'");
}
else
{
    mysql_query("INSERT INTO user (user_name,user_profession,user_address,user_avatar) VALUES ('$name','$profession','$address','$NewImageName') WHERE user_username = '$user_username'");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM