在php中插入会话用户数据

时间:2016-04-27 20:36:12

标签: php sql codeigniter model-view-controller

--------------- START-UPDATE -----------------

我在代码中添加了会话并且没有注销然后登录以刷新变量..我的坏人,谢谢你。

--------------- END-UPDATE -----------------

我正在使用Codeigniter 3.0,我可以读取会话数据,我已经通过回声测试了这个。但是当我尝试插入表格时,我得到了这个错误。

错误

  Error Number: 1054

Unknown column 'LoginID' in 'field list'

INSERT INTO `Report_Comments` (`Comments`, `ReportID`, `LoginID`) VALUES (',l;', '53', NULL)

Filename: models/report/Report_model.php

Line Number: 58

代码(型号)

function create_comment()
    {
        $new_comment = array(
            'Comments' => $this->input->post('Comments'),
            'ReportID' => $this->input->post('ReportID'),
            'UserID' => $this->session->userdata('LoginID')
        );

        $insert = $this->db->insert('Report_Comments', $new_comment);
        return $insert;
    }

1 个答案:

答案 0 :(得分:0)

在使用变量之前,仔细检查是否已为变量赋值是一个好主意。这个修改过的模型函数提供了一些检查。

  function create_comment()
  {
    $comments = $this->input->post('Comments');
    $reportID = $this->input->post('ReportID');
    $userID = $this->session->userdata('LoginID');
    if(isset($reportID) && isset($userID))
    {
      $new_comment = array(
          'Comments' => isset($comments) ? $comments : "",
          'ReportID' => $reportID,
          'UserID' => $userID
      );
      return $this->db->insert('Report_Comments', $new_comment);
    }
    return FALSE;
  }

上述操作的想法是,除非ReportIDUserID值设置为某个值,否则不应尝试插入。如果没有注释,则空字符串将保存到db。