gpt4 book ai didi

php - CodeIgniter 批量插入特定列

转载 作者:可可西里 更新时间:2023-11-01 06:33:43 25 4
gpt4 key购买 nike

我有一个 CodeIgniter 应用程序和一个具有以下结构的 MySQL 表:

Table shortlisted_candidates
id int PRIMARY KEY AUTO INCREMENT,
candidate_no int NOT NULL,
written_marks int,
viva_marks int

我想对这个表执行insert_batch,但数据只会插入到idcandidate_no 列中。

我知道 Codeigniter Active Records 类提供了用于批量插入的 $this->db->insert_batch() 函数,但它实际上是在整个表中插入数据,而我只想插入数据到特定的列。我如何在 CodeIgniter 中实现这一点?

请注意,id 是一个 AUTO INCREMENT,PRIMARY KEY 列。

我的 Controller 代码:

class Shortlisted_candidates extends MY_Controller
{

function __construct()
{
parent::__construct();
$this->load->database();
$this->load->model('Shortlisted_candidate');
$this->load->helper('url');
$this->load->helper('html');
$this->load->helper('form');
$this->output->enable_profiler(false);
}
function add(){
$data = array();
if ($_POST) {

$data['candidate_no'] = $this->input->post('candidate_no');
$this->Shortlisted_candidate->add_candidate_to_shortlist($data);
$this->session->set_flashdata('message', 'Data Successfully Added');
redirect('shortlisted_candidates/add');
}
}
}

我的模型代码:

class Shortlisted_candidate extends CI_Model
{

function __construct()
{
// Call the Model constructor
parent::__construct();
}

function add_candidate_to_shortlist($data){
//Following code inserts data in ALL COLUMNS
$this->db->insert_batch('shortlisted_candidates', $data);
//How to write active record batch insert query for inserting data in only `id` and `candidate_no` column?
}
}

最佳答案

您需要修改以下 Controller 功能。

function add(){
$data = array();
if ($_POST) {

$data[0]['candidate_no'] = $this->input->post('candidate_no');
$this->Shortlisted_candidate->add_candidate_to_shortlist($data);
$this->session->set_flashdata('message', 'Data Successfully Added');
redirect('shortlisted_candidates/add');
}
}

除此之外,您需要修改表架构,以便设置其他字段的默认值。

关于php - CodeIgniter 批量插入特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31398110/

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