mickey mickey - 10 months ago 42
JSON Question

data is not inserting into database in codeigniter

actually i am having student records in $students array and there is another array within $students, whose name is skill[], which is a checkbox form field name, so pls tell me how to use json_encode and where.

input form

<input type="checkbox" name="skills[]" value="php">php<br>
<input type="checkbox" name="skills[]" value="dotnet">dotnet<br>
<input type="checkbox" name="skills[]" value="java">java<br>
<input type="checkbox" name="skills[]" value="ruby_on_rails">ruby_on_rails<br>


public function insert(){
if ($this->input->post('add')==true)
$student = array( 'name' => $this->input->post('name'),
'email' => $this->input->post('email'),
'skills' => $this->input->post(json_encode(skills)),
'notes' => $this->input->post('notes'),
'gender' => $this->input->post('gender') );
$result = $this->Student_info_model->insertStudent($student);
echo "inserted";
else {
echo "Not Inserted";


function insertStudent($student){
$this->db->insert('student_info_table', $student); // insert data into "student_info_table" table`
if ($this->db->affected_rows() > 0) {
return true;
else {
return false;


Error Number: 1048

Column 'skills' cannot be null

INSERT INTO `student_info_table` (`name`, `email`, `skills`, `notes`, `gender`) VALUES ('gailyn', 'quentin@gmail.com', NULL, 'dsas', 'male')

Filename: C:/xampp/htdocs/codeigniter/system/database/DB_driver.php

Line Number: 691

Answer Source

As far as i understand you want to get the array of skills from the http request and then to encode it and save it to your database. For that please use json_encode($this->input->post('skills') instead of $this->input->post(json_encode(skills)), so you first get the data, and then apply the json encoding over it.