2013-04-04 58 views
0

你好朋友我需要關於Mysql的幫助。我的數據庫看起來像這樣
表名=用戶如何在Mysql中插入值,如果它是未知的?

id = "7" | YourLastIP = "" 

我的查詢是:

UPDATE users SET `YourLastIP` = `XX.XX.XX.XX` WHERE `id` = `7` 

我要插入,但對我來說也不會工作,請指導我

INSERT INTO Users `YourLastIP` = (`XX.XX.XX.XX`) WHERE `id` = `7` 

請幫幫我如何插入值如果表VA沒有人知道。

+1

所以你想插入或更新?哪一個?對於'update',你必須把'XX.XX.XX.XX'的值放在'''裏':'UPDATE users SET YourLastIP ='XX.XX.XX.XX'WHERE id = 7' – 2013-04-04 14:02:31

回答

1

你正在使用反引號,這意味着在MySQL中,你是一個列名,而不是文本。改爲使用單引號'

+0

幫助我做完了:D – 2013-04-04 14:13:32

0

首先,問題是你已經用反斜槓包裝了這個值,假設它是單引號,因爲它是一個字符串文字。

UPDATE users SET `YourLastIP` = 'XX.XX.XX.XX' WHERE `id` = '7' 

二,使用INSERT ... ON DUPLICATE KEY UPDATE如果你想UPDATE現有ID或以其他方式INSERT如果它不存在。

INSERT INTO users(ID, YourLastIP) 
VALUES (7, 'ip_here') 
ON DUPLICATE KEY UPDATE YourLastIP = 'ip_here' 

作爲旁註,查詢是用SQL Injection脆弱,如果變量的值(小號)從外部來了。請看下面的文章,瞭解如何防止它。通過使用PreparedStatements你可以擺脫使用單引號圍繞值。

0

使列NULLABLE在定義

然後,

CREATE TABLE PRO(ID INT, YOURLASTIP VARCHAR(15)); 
INSERT INTO PRO values(4, "xxx.xxx.xxx.xxx"); 
相關問題