gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 11:13:04 24 4
gpt4 key购买 nike

我在传递要在 MySQL 中保存为 INT 的变量时遇到问题。我能找到的最接近我的问题的是 this question但我已经验证我没有使用单引号和双引号。当我 print_r($this->session->userdata('subdomain')) 时,我在屏幕上看到正确的子域 ID(在本例中为 10),但是当我尝试使用 $params 传递它时它总是将 subdomain_id 保存为 0,我不明白为什么。

这是 Project_assignees_model:

function add_prefix_project_assignees($params)
{
$this->db->insert('prefix_project_assignees',$params);
return $this->db->insert_id();
}

这是我的项目 Controller (具体来说,它是 $assignees 数组):

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);
}
}

enter image description here

enter image description here

为什么print_r显示正确的subdomain_id,但当它保存到数据库时却保存为0?

********更新********

仅供引用,这有效:

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

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

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

最佳答案

有时我想,在我意识到自己的问题之前,我只需要为其他人写出来。当我循环遍历每个受让人将其添加到表中时,我意识到我没有传递 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

关于php - 将 PHP 变量保存到 MySQL INT 始终为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40197828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com