CodeIgniter控制器中如何拆分数据库内implode存储的字符串数据
错误原因
- 你在
consultation_result方法中直接调用explode时传入的$CF_user变量未提前赋值,你从数据库查询到的行数据是存储在$data['consultation_detail']对象中,需要先从该对象取出CF_user字段的字符串值再做拆分。 - 补充说明:你
add_detail方法里redirect的第二个参数传入$data不会生效,CodeIgniter框架的redirect是页面跳转逻辑,无法直接携带自定义数组到目标方法,你在consultation_result中直接查询数据库取最新数据的逻辑是合理的。
修正后的代码
public function consultation_result() { // 读取consultation_detail表的最新行数据 $data['consultation_detail'] = $this->db->get('consultation_detail')->row(); // 先取CF_user字段值再拆分为数组 $CF_user = explode(',', $data['consultation_detail']->CF_user); // 如果需要把拆分后的数组传递到视图,可存入$data数组 $data['CF_user_arr'] = $CF_user; // 后续加载视图逻辑示例:$this->load->view('consultation_result', $data); }
优化建议
为了避免数据库中CF_user字段为空时explode报错,可以增加空值判断:
$CF_user = !empty($data['consultation_detail']->CF_user) ? explode(',', $data['consultation_detail']->CF_user) : [];
内容的提问来源于stack exchange,提问作者Peb Mpeeb
相关产品推荐
相关产品推荐

