1

私は次のようif statementにうまく動作insertしますが、挿入されていないアイテムでテーブルを更新するだけではないようです:

入れる:

        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';
}
4

2 に答える 2

1

次のコードのようなものが必要だと思います:

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

?基本的に、UPDATEステートメントと同じ数の配列要素が必要です

于 2012-09-21T21:30:12.690 に答える
0

あなたは2つの配列項目が不足しているようです:

CMS::updateQuery("UPDATE {refocus_candidate_category} SET canid=?, categoryid=? WHERE canid=? AND categoryid=?", array(
    emailCheck['id'], $id, ,'canid', 'cat_id number here');
);
于 2012-09-21T21:29:24.677 に答える