在mysql数据库的一列中插入多个值

时间:2015-02-20 12:55:23

标签: php mysql arrays codeigniter

我试图用一个html输入插入多个值, HTML输入将有分号分隔的文本,将使用explode函数创建数组然后想将此数组传递给mysql

我创建了以下代码,

if($this->input->post('create_category'))
    {
        $category_chunk = $this->input->post('category_name');
        $category_list = explode(";", $category_chunk);

        $category_array = array(
                    'category_name' =>$category_list );

        $result = $this->model_admin->create_expense_category($category_array);}

当我点击创建类别时,它会抛出错误"消息:数组到字符串转换"和" INSERT INTO ec_ex_categorycategory_name)VALUES(数组)"

我知道这是因为' category_name'而创建的。 => $ category_list,

我不知道如何在' category_name'中传递数组。柱, 我正在使用codeigniter。

任何帮助表示赞赏,

谢谢,

2 个答案:

答案 0 :(得分:0)

$ category_list是数组,因此您必须首先从中获取category_name,然后插入它。

示例:

$ category_name = $ category_list [0] //数组中的名称是什么索引

然后插入$ category_name。

答案 1 :(得分:0)

您正尝试将数组中的数组发送到模型。要在一行中插入多行,您需要使用insert_batch,它需要一组数组才能工作:

控制器:

$category_list = explode(";", $category_chunk);

$category_array = array();
foreach($category_list as $c)
{
    $category_array[] = array('category_name' =>$c)
}

然后在你的模型中:

$this->db->insert_batch('ec_ex_category',$category_array);