2016-09-22 91 views
0

我需要执行我的SQL查询来在codeigniter脚本中复制MYSQL行。在codeigniter中执行SQL查询

这是我的代码

if ($para1 == 'duplicate'){ 
$query = $this->db->query("CREATE TEMPORARY TABLE tmptable_1 SELECT * FROM product WHERE `product_id` = ".$para2); 
$query = $this->db->query("UPDATE tmptable_1 SET primarykey = NULL"); 
$query = $this->db->query("INSERT INTO product SELECT * FROM tmptable_1"); 
$query = $this->db->query("DROP TEMPORARY TABLE IF EXISTS tmptable_1"); 
} 

但这这么想的工作。

+0

是否$ PARA1 = '重复' ....需要多一点的解释 –

+0

@MartavisGriffin参数的URL参数,是这样的:本地主机/ index.php文件/ admin/product/duplicate/1,$ para2是产品的编号 – Someone

回答

0

您可以使用此:

if ($para1 == 'duplicate'){ 
$table = 'product'; 
$primary_key_field = 'product_id'; 
$primary_key_val = $para2; 
    /* generate the select query */ 
    $this->db->where($primary_key_field, $primary_key_val); 
    $query = $this->db->get($table); 

    foreach ($query->result() as $row){ 
     foreach($row as $key=>$val){   
      if($key != $primary_key_field){ 
      /* $this->db->set can be used instead of passing a data array directly to the insert or update functions */ 
      $this->db->set($key, $val);    
      }//endif    
     }//endforeach 
    }//endforeach 

    /* insert the new record into table*/ 
    return $this->db->insert($table); 
} 
+0

谢谢,这适用于我。 – Someone