首页 > 解决方案 > Codeigniter3.x调用多个存储过程缓存

问题描述

这与 [ CodeIgniter 活动记录调用多个存储过程的问题有些相关

但我没有遇到空白页;相反,当我将数据数组传递给查看时,似乎前面的数组也被拖到视图中。

模型

  public function data1($student) {
            $year = 1;
            $sem = 1;

            $course = $this->getStudentCourseByStudentId($student);
            $sql = "CALL EVALUATION_BY_YEAR_SEM(?,?,?,?)";

            $query = $this->db->query($sql, array($course, $student, $year, $sem));

            if (!$query) {
                return  $this->db->error();
            } else {
                mysqli_next_result( $this->db->conn_id );
                return $query->result();
            }
        }

  public function data2($student) {
            $year = 1;
            $sem = 2;

            $course = $this->getStudentCourseByStudentId($student);

            $sql = "CALL EVALUATION_BY_YEAR_SEM(?,?,?,?)";

            $query = $this->db->query($sql,array($course,$student,$year,$sem));

            if (!$query) {
                return  $this->db->error();
            } else {
                mysqli_next_result( $this->db->conn_id );
                return $query->result();
            }
       }

控制器:

$data['data1']=data1 from my model(SP);
$data['data2']=data2 from my model(SP);

看法:

foreach($data2 as key => $value ) {
    echo ....;
}

这是问题所在......在视图中,我只想输出$data2但令我惊讶的是 $data1 也在输出。

还有其他人有这个问题吗?

标签: continuous-integrationcodeigniter-3

解决方案


我只是解决它。

模型

public function data1($student){
  **$this->db->initialize();**
  $year = 1;$sem = 1;
  $course = $this->getStudentCourseByStudentId($student);
  $sql = "CALL EVALUATION_BY_YEAR_SEM(?,?,?,?)";
  $query = $this->db->query($sql,array($course,$student,$year,$sem));
  if (!$query) {
  return  $this->db->error();
  }else {
  mysqli_next_result( $this->db->conn_id );
  return $query->result();**$this->db->close();**
  }
  }
      public function data2($student){
      **$this->db->initialize();**
      $year = 1;$sem = 2;
      $course = $this->getStudentCourseByStudentId($student);
      $sql = "CALL EVALUATION_BY_YEAR_SEM(?,?,?,?)";
      $query = $this->db->query($sql,array($course,$student,$year,$sem));
      if (!$query) {
      return  $this->db->error();
      }else {
      mysqli_next_result( $this->db->conn_id );
      return $query->result();**$this->db->close();**
      }
      }

控制器

$data['data1']=data1 from my model(SP);
**$this->db->close();**
$data['data2']=data2 from my model(SP);

推荐阅读