PHP MYSQL配置更新语句

PHP MYSQL配置更新语句,php,mysql,sql-update,Php,Mysql,Sql Update,我有下面的if语句,它对于insert很有效,但我似乎无法让它只使用未插入的项更新表: 插入: for($i=0; $i<count($fields['Occupation']); $i++) { $id = $fields['Occupation'][$i]; CMS::insertQuery("INSERT INTO {table} SET canid=?, categoryid=?", array($emailCheck

我有下面的
if语句
,它对于
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';
完整声明:

$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';
}
$catParams=array\u merge(array($emailCheck['id']),$fields['occulation']);
$catPlaceholders='?'.str_repeat(',?',count($fields['occulation'])-1);
$catCheck=CMS::selectQuery(“从{table}中选择*,其中canid=?,categoryid在(“.$catPlaceholders.”)中,$catParams);
如果($catCheck!=FALSE)
{

对于($i=0;$i),您似乎缺少两个数组项:

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

似乎您缺少两个数组项:

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

我猜您需要以下代码:

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

基本上,您需要与
UPDATE
语句中的
一样多的数组元素

我猜您需要如下代码:

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

基本上,在
更新
语句中,您需要的数组元素数量与
相同

发布您尝试更新的代码,完整的一个您在更新查询中有四个参数,但您只提供了两个值..?发布您尝试更新的代码,完整的一个您在更新查询中有四个参数但您只提供了两个值..?非常感谢,但当前它不会插入任何新选定的选项-保留当前插入的项目,但使用任何新选定的项目进行更新。我如何使它这样做?非常感谢,但当前它不会插入任何新选定的选项-保留当前插入的项目,但使用任何新选择进行更新我怎么能让它这么做