如何序列化和反序列化数组?

时间:2015-05-04 12:17:07

标签: php codeigniter

我想序列化这个:

$product_detail = array(
            'product_name' => $_POST['product_name'],
            'product_price' => $_POST['product_price'],
            'product_description' => $_POST['product_description'],
            'product_size' => $_POST['product_size'] // this line get the item in option "value" 
        );
$product_detail=serialize($product_detail); //convert array into string.

但是当我取消序列化并将其输入db时,此错误显示:

INSERT INTO `products` (`0`) VALUES ('') 

如果我没有反序列化,则显示:

INSERT INTO `products` (`QA92000I` like it alotLarge) VALUES ('') 

告诉我我在哪里出错我正在使用codeigniter

3 个答案:

答案 0 :(得分:2)

在将数组插入数据库时​​,无需在codeigniter中序列化和反序列化数组: -

您可以使用以下方法插入: -

//这是控制器代码: -

function product()
{
 $this->load->model("your_model");// load your model file
    $product_detail = array(
                'product_name' => $_POST['product_name'],
                'product_price' => $_POST['product_price'],
                'product_description' => $_POST['product_description'],
                'product_size' => $_POST['product_size'] // this line get the item in option "value" 
        );
$this->your_model->product($product_detail);// pass your array directly to your model file

}

// this is your model code
function product($product_detail)
{
$this->db->insert('products',$product_detail)
}

答案 1 :(得分:1)

这就是我如何序列化:

$product_detail=unserialize($product_detail);

这就是我将变量传递给模型的方法:

$this->Product_area_model->product_add_new($product_detail);

这是我的疑问:

$this->db->insert('products',$product_detail);

答案 2 :(得分:0)

好的,如果你想序列化这些字段并将它们存储在行的单个字段中,那很好,但是你需要知道表中要将序列化数据放入哪个字段,这就是基本流程< / p>

function product($id)
{
   $this->load->model("your_model");// load your model file

   $product_detail = array(
            'product_name' => $_POST['product_name'],
            'product_price' => $_POST['product_price'],
            'product_description' => $_POST['product_description'],
            'product_size' => $_POST['product_size'] 
        );
   $product_detail=serialize($product_detail); 

   $product = array('id' => $id,
                    'product_details' = $product_detail
              );
   $this->your_model->insert($product);
}