我有一个包含 3 个字段的表(myTable):
ID (int), posistion(int), products_id(int)
我有一个表格,我们可以在其中更改订单,并从此列表中删除项目。用户完成编辑列表后,他提交表单。
我想在插入新数据之前清空表格。
所以我打电话$this->db->empty_table("myTable");
之后我像这样插入新数据:
$this->db->insert_batch("jcarousel",$insert);
问题是:在插入查询之后以某种方式调用了 empty_table(),因为我的表总是空的。需要明确的是:当我注释掉时,我的插入查询工作正常//$this->db->empty_table("myTable");
我已经尝试了几件事,所以我的代码有点搞砸了。现在它看起来像这样:
public function change_carousel_order($value='')
{
$this->output->enable_profiler(TRUE);
$empty = $this->empty_table();
//$empty = TRUE;
$form = $this->input->post();
//print_r($form['order']);
$insert = array();
foreach ($form['order'] as $key => $value) {
//echo "value: ".$value;
$insert[$key]['product_id'] = $value;
$insert[$key]['posistion'] = $key;
}
echo $this->db->last_query();
if($empty==TRUE)
{
echo "jaaa";
echo $this->insert_change_carausel_order($insert);
}
else{
echo "neee!";
}
echo $this->db->last_query();
//redirect("welcome/jcarousel");
}
public function empty_table($value='')
{
return $this->db->empty_table("jcarousel");
}
public function insert_change_carausel_order($insert=array())
{
return $this->db->insert_batch("jcarousel",$insert);
}
任何人都看到我做错了什么?为什么调用 empty_table() 后 codeigniter 不插入任何数据?任何帮助将不胜感激。
$this->output->enable_profiler(TRUE); 告诉我们有 2 个查询;删除查询确实在插入查询之后运行
0.0003 DELETE FROM `jcarousel`
0.0002 INSERT INTO `jcarousel` (`posistion`, `product_id`) VALUES (0,'755'), (1,'835'), (2,'838')
和另一个结果相同的设置:
0.0006 DELETE FROM `jcarousel`
0.0002 INSERT INTO `jcarousel` (`posistion`, `product_id`) VALUES (0,'755'), (1,'835'), (2,'838')