更新并插入单个查询

时间:2015-02-23 06:06:20

标签: php mysql

我的表格包含pageiddepartmentpositionactive。在更新时,如果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 个答案:

答案 0 :(得分: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)";