我一直在收到此错误(请在问题底部检查确切的错误)我已经一遍又一遍地检查,但是找不到什么地方出了问题。好像还好在 insert_batch 上可以正常工作,但是在 update_batch 上却收到此错误。这是我当前的代码
Codeigniter模型: 这是正确提取数据的模型
write()
Codeigniter控制器: 这是我的控制器,在这里检查是否有种子行。如果是,则更新,否则插入。
function get_seeds($tournament_id) {
$this->db->where('tournament_id', $tournament_id);
$result = $this->db->get('tournament_seed');
return $result->result();
}
Print_r($ check_seeds)
$check_seeds = (object)$this->tournament_model->get_seeds($tournament_id);
if ($_POST) {
foreach ($check_seeds as $key => $value) {
if(!empty($key) && !empty($value)) {
$seeded[] = array(
'id' => $value->id,
'tournament_id' => $tournament_id,
'stage_id' => $stage_id,
'seed_id' => $value,
'team_name' => $key,
);
$this->db->update_batch('tournament_seed', $seeded, 'id');
redirect('organizer/tournaments);
} else {
//something
}
}
}
错误
stdClass Object
(
[0] => stdClass Object
(
[id] => 3
[tournament_id] => 713161746
[stage_id] => 3
[seed_id] => 1
[team_name] => -V-ATTAX
)
[1] => stdClass Object
(
[id] => 4
[tournament_id] => 713161746
[stage_id] => 3
[seed_id] => 2
[team_name] => NIP
)
[2] => stdClass Object
(
[id] => 5
[tournament_id] => 713161746
[stage_id] => 3
[seed_id] => 3
[team_name] => fnatic
)
)
答案 0 :(得分:2)
您正在尝试对刚从数据库表 tournament_seed 查询的相同数据使用 update_batch(),但是您没有使用新的 $ _ POST 数据进行更新。
您还可以在循环中使用 update_batch(),这是错误的。循环只是创建要更新的数组,然后在循环之外 update_batch()
使用以下命令创建一个数组,该数组以后可用于 update_batch(),例如:
$seeded=array();
$sd=array();
foreach($_POST['your_newly_posted_seeds'] as $key=>$value){
$sd['id']=$value->id;
$sd['tournament_id']=$tournament_id;
//...
array_push($seeded, $sd);
}
$this->db->update_batch('tournament_seed', $seeded, 'id');
update_batch() from the docs,向下滚动或搜索: $ this-> db-> update_batch(),因为没有书签。