我想序列化这个:
$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
答案 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);
}