Codeigniter在数据库错误中设置值

时间:2012-10-23 12:45:12

标签: database codeigniter insert set

ID ans1_r ans2_r ans3_r ans4_r ans5_r ans6_r

我在 anketemale 表格中有这些字段。所有字段都是整数。

$answer是列名。 $id是所选行的ID。 所以我想在特定的行中创建+1,只在ans字段中创建一个。我写了这段代码:

function upisi_malu($id,$answer)
    {
        $anketadb = $this->load->database('anketa',TRUE);

    $anketadb->select($answer);
    $anketadb->where('id', $id); 
    $q = $anketadb->get('anketemale');

    foreach ($q->result() as $row)
    {
    $ans = $row->$answer + 1;
    }
    echo $answer; //just to know I echo them, and values are right
    echo $ans;
    echo $id;
    $anketadb->set($answer, $ans); 
    $anketadb->where('id', $id); 
    $anketadb->insert('anketemale'); 
}

为什么此代码会在新行中写下每个更改?我只想改变现有的行。

1 个答案:

答案 0 :(得分:2)

foreach ($q->result() as $row)
{
    $ans = $row->$answer + 1;
    $anketadb->set($answer, $ans); 
    $anketadb->where('id', $id); 
    $anketadb->update('anketemale');
}

这是我根据您的信息提出的最佳猜测。您的示例中使用的是insert而不是updateinsert将始终创建一个新行... update只会更新where匹配时存在的行。