将PHP变量保存到MySQL INT始终为0

时间:2016-10-22 22:54:31

标签: php mysql codeigniter

我在传递一个变量时遇到问题,要在MySQL中保存为INT。我能找到的最接近我的问题的是this question,但我已经确认我没有使用单引号和双引号。当我var p = document.createElement("P").className = "indent-wrapped"; console.log(p);时,我在屏幕上看到了正确的子域ID(在本例中为10),但是当我尝试使用$ params传递它时,它总是将subdomain_id保存为0,我无法弄清楚原因。

这是Project_assignees_model:

print_r($this->session->userdata('subdomain'))

这是我的Project控制器(具体来说是function add_prefix_project_assignees($params) { $this->db->insert('prefix_project_assignees',$params); return $this->db->insert_id(); } 数组):

$assignees

enter image description here

enter image description here

为什么function edit($entry_id) { $this->load->library('form_validation'); $this->form_validation->set_rules('client_id','Client Id','required|integer'); $this->form_validation->set_rules('title','Project Title','required|max_length[255]'); $this->form_validation->set_rules('project_status','Project Status','required'); $this->form_validation->set_rules('project_details','Project Details','required'); $this->form_validation->set_rules('project_estimated_hours','Project Estimated Hours','required|max_length[255]'); $this->form_validation->set_rules('end','Project Deadline','required'); if($this->form_validation->run()) { date_default_timezone_set("America/New_York"); $date = date("Y-m-d h:i:sa"); $params = array( 'subdomain_id' => $this->session->userdata('subdomain'), 'client_id' => $this->input->post('client_id'), 'title' => $this->input->post('title'), 'project_status' => $this->input->post('project_status'), 'project_details' => $this->input->post('project_details'), 'project_last_updated' => $date, 'project_estimated_hours' => $this->input->post('project_estimated_hours'), 'start' => $this->input->post('start'), 'end' => $this->input->post('end'), 'owner_id' => get_current_user_id(), ); $prefix_projects_id = $this->Project_model->update_prefix_projects($entry_id,$params); $assignees = array( 'subdomain_id' => $this->session->userdata('subdomain'), 'project_id' => $entry_id, 'user_id' => $this->input->post('assignee'), ); $this->load->model('Project_assignee_model'); $insertAssignees = array(); for ($i = 0; $i < count($assignees['user_id']); $i++) { //Get user_id from ID $userID = $assignees['user_id'][$i]; $insertAssignees[$i] = array('project_id' => $entry_id, 'user_id' => $assignees['user_id'][$i]); // $insert is ready for insert_batch $prefix_assignees = $this->Project_assignee_model->add_prefix_project_assignees($insertAssignees[$i]); } //redirect('project/index'); } else { $this->load->model('Client_model'); $data['prefix_clients'] = $this->Client_model->get_all_prefix_clients(); $data['prefix_projects'] = $this->Project_model->get_prefix_projects($entry_id); $data['prefix_users'] = $this->aauth->list_users(); $this->load->model('Project_assignee_model'); $data['prefix_assignees'] = $this->Project_assignee_model->get_prefix_project_assignees($entry_id); $this->load->view('project/edit',$data); } } 会显示正确的subdomain_id,但是当它保存到数据库时会保存为0?

******* ******* UPDATE

仅供参考,这有效:

print_r

但这不是(即使打印子域的用户数据给我10):

$assignees = array(
       'subdomain_id' => 10,
       'project_id' => $entry_id,
       'user_id' => $this->input->post('assignee'),
);

1 个答案:

答案 0 :(得分:1)

有时我想在我意识到问题之前,只需要把它写出来。当我遍历每个受让人将它们添加到表中时,我意识到我没有用它传递subdomain_id。

我有这个:

$insertAssignees[$i] = array('project_id' => $entry_id, 'user_id' => $assignees['user_id'][$i]); // $insert is ready for insert_batch

需要更改为包含subdomain_id

$insertAssignees[$i] = array('subdomain_id' => $this->session->userdata('subdomain'), 'project_id' => $entry_id, 'user_id' => $assignees['user_id'][$i]); // $insert is ready for insert_batch