Php 如何序列化和取消序列化数组?
我想序列化以下内容:Php 如何序列化和取消序列化数组?,php,codeigniter,Php,Codeigniter,我想序列化以下内容: $product_detail = array( 'product_name' => $_POST['product_name'], 'product_price' => $_POST['product_price'], 'product_description' => $_POST['product_description'], 'product_size'
$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在将数组插入数据库时,无需序列化和取消序列化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)
}
我就是这样取消序列化的:
$product_detail=unserialize($product_detail);
这就是我将变量传递到模型的方式:
$this->Product_area_model->product_add_new($product_detail);
这是我的疑问:
$this->db->insert('products',$product_detail);
好的,如果您想序列化这些字段并将它们存储在行上的单个字段中,这很好,但是您需要知道要将序列化数据放入表中的哪个字段,因此这是基本流
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);
}
这是您的控制器代码,您想将此数组插入数据库??是的,这是我的控制器代码,在取消序列化后我将其传输到模型,然后插入数据库而不取消序列化它仅显示值和不显示键(表列名称)请显示用于创建查询的PHP代码。这很可能是您的错误在序列化之前和取消序列化之后都是var_damp($product_detail)。这将有助于找到答案亲爱的问题是需要序列化,因为这是我的要求。我不明白为什么需要序列化。您可以用简单的方法来完成,因为我需要将该数组存储在会话表中。为此,我需要序列化,然后从会话中提取,然后取消序列化。这是您的问题的答案还是新信息?如果是这样,您可以编辑问题。请不要将信息作为答案写入。系统不允许我写这么大的答复。所以我输入它作为答案。我是stack exchange的新手。我没有告诉过你将其作为评论来写。我告诉过你编辑你的问题。