2012-09-21 63 views
1

我有以下if statement,對於一個insert工作正常,但我似乎無法得到它僅更新與項目表中未插入:PHP MYSQL配置更新語句

插入:

 for($i=0; $i<count($fields['Occupation']); $i++) { 
      $id = $fields['Occupation'][$i]; 

      CMS::insertQuery("INSERT INTO {table} SET canid=?, categoryid=?", array($emailCheck['id'], $id)); 
     } 
      echo 'found update'; 

我都試過,沒有運氣以下更新線。

CMS::updateQuery("UPDATE {refocus_candidate_category} SET canid=?, categoryid=? WHERE canid=? AND categoryid=?", array($emailCheck['id'], $id)); 

聲明全文:

$catParams = array_merge(array($emailCheck['id']), $fields['Occupation']); 
$catPlaceholders = '?'.str_repeat(',?',count($fields['Occupation'])-1); 

$catCheck = CMS::selectQuery("SELECT * FROM {table} WHERE canid=? AND categoryid IN (".$catPlaceholders.")", $catParams); 

if($catCheck != FALSE) 
{ 
    for($i=0; $i<count($fields['Occupation']); $i++) { 
     $id = $fields['Occupation'][$i]; 

     CMS::updateQuery("UPDATE {table} SET canid=?, categoryid=? WHERE canid=? AND categoryid=?", array($emailCheck['id'], $id)); 
    } 
     echo 'found update'l 
}else{ 
    for($i=0; $i<count($fields['Occupation']); $i++) { 
     $id = $fields['Occupation'][$i]; 

     CMS::insertQuery("INSERT INTO {table} SET canid=?, categoryid=?", array($emailCheck['id'], $id)); 
    } 
    echo 'else insert'; 
} 
+0

後您嘗試進行更新的代碼,完整的一個 – rsz

+0

您的更新查詢四個參數,但你只提供兩個值..? – heretolearn

回答

1

我猜你需要像下面的代碼:

CMS::updateQuery("UPDATE {refocus_candidate_category} SET canid=?, 
        categoryid=? WHERE canid=? AND categoryid=?", 
        array($emailCheck['id'], $id, $emailCheck['id'], $id) 
       ); 

基本上你需要在你的UPDATE聲明儘可能多的數組元素?

+0

我已經更新了我的問題會發言全文 –

+0

見 –

+0

非常感謝更新的答案,但目前不會將任何新的選擇選項 - 保持目前的插入項目,但更新任何新的選擇項。我怎麼能做到這一點 –

0

好像你兩數組項短:

CMS::updateQuery("UPDATE {refocus_candidate_category} SET canid=?, categoryid=? WHERE canid=? AND categoryid=?", array(
    emailCheck['id'], $id, ,'canid', 'cat_id number here'); 
); 
+0

我已經更新了我的問題會發言全文 –