Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Codeigniter Insert Array to Database

I have created a form in Codeigniter with a phone number field that dynamically is duplicated using javascript. So basically I can have one or more fields like this.

<input name="phone[]" value=""type="text">
<input name="phone[]" value=""type="text">

Then in my controller I have

$form_data = array(
    'first_name' => $this->input->post('first_name'),
    'last_name' => $this->input->post('last_name'),
    'phone' => $this->input->post('phone[]')
    );

Then I am saving this to my dabase like so

function SaveForm($form_data)
{
    $this->db->insert('customers', $form_data);
    if ($this->db->affected_rows() == '1')
    {
        return TRUE;
    }
    return FALSE;
}

but obviously the code for 'phone' is wrong, I just cant figure out how to properly do this.

like image 917
skribe Avatar asked Dec 01 '25 05:12

skribe


1 Answers

you can't save array in to database. You can convert it in to string using implode() and whenever you needed then convert it back in array using explode(). Like below

$phone=implode(',',$this->input->post('phone'));
$form_data = array(
        'first_name' => $this->input->post('first_name'),
        'last_name' => $this->input->post('last_name'),
        'phone' => $phone
        );

OR

You can convert it to json string and when you needed convert back to Array Like below:

$phone = json_encode($this->input->post('phone'));

Convert back to array

$phone = json_decode($phone, TRUE);
like image 63
Vinie Avatar answered Dec 03 '25 18:12

Vinie