2015-02-23 77 views
0

我有一個表,其中包含pageid,department,positionactive。在更新時,我必須更新活動列如果pageid已經存在,如果沒有,我會插入一個新的行與pageid更新和插入一個查詢

我通過複選框得到的pageid價值觀和我的更新查詢是這樣

$sql = "INSERT INTO access_level (page_id, department, position, active) 
       VALUES (".$sn.", ".$department.", ".$position.", 1) 
     ON DUPLICATE KEY UPDATE 
     department=VALUES(".$department."), 
     position=VALUES(".$position."), 
     active=VALUES(1)"; 

但一切都在這種情況下,越來越插入兩次。

我在哪裏做錯了?有人可以指導我嗎?

+1

主鍵不 – 2015-02-23 06:11:08

+0

我有一列名爲id是主鍵在這裏。但是,我如何在這個查詢中使用它?我不能使pageid獨特,因爲不同的部門它可以有相同的頁面編號 – user2178637 2015-02-23 06:17:23

+0

你使用自動增量爲id? – 2015-02-23 06:19:24

回答

0

這也許應該爲你工作:

$sql = "INSERT INTO access_level (page_id, department, position, active) 
       VALUES (".$sn.", ".$department.", ".$position.", 1) 
     ON DUPLICATE KEY UPDATE 
     id=LAST_INSERT_ID(id), 
     active=VALUES(1)"; 
+0

我試過了,但是得到'#1064 - 你的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,在第1行' '處查詢'1)',並且查詢爲 ** INSERT INTO access_level(page_id,department,position,active)VALUES 1,4,4,1)ON DUPLICATE KEY UPDATE aid = LAST_INSERT_ID(aid),active = VALUES('1')'。 **我沒有得到什麼 – user2178637 2015-02-23 08:12:27