我无法使用codeigniter进行简单的数据库更新

时间:2016-01-04 06:34:06

标签: php database codeigniter

我使用一个非常简单的代码来使用php codeigniter更新数据库。但是我无法更新

这是我的调用控制器的视图代码:

<input type="button" value="Approve" name="approve" id="approve" onclick="<?php echo base_url(); ?>inc/setStatusApprove/<?php echo $members['user_id']; ?>/<?php echo $members['user_company_id']; ?>">

这是我的控制器功能:

public function setStatusApprove($userid,$company_id){
$this->me->setStatusApprove($userid,$company_id);
}

这是我的模特功能:

function setStatusApprove($userid,$company_id){
    $query="update user_profiles set user_profile_is_active = 1 where user_id=" .$userid . "  and user_company_id =" . $company_id . " ";
    $query = $this->db->query($query);
}

但它没有更新数据库。请帮忙。

3 个答案:

答案 0 :(得分:2)

只需使用Active record编写您的查询。活动记录是安全的,它将使您免于SQL注入

$this->db->set('user_profile_is_active', 1);
$this->db->where('user_id', $userid);
$this->db->where('user_company_id', $company_id);
$this->db->update('user_profiles');

您需要在onclick function中将您的网址写为

,而不是使用form action
action="<?php echo base_url(); ?>inc/setStatusApprove/<?php echo $members['user_id']; ?>/<?php echo $members['user_company_id']; ?>"

答案 1 :(得分:0)

 function setStatusApprove($userid,$company_id){
              //echo $userid." ".$company_id;
              // die;

               $data = array(
               'user_profile_is_active' => 1,
              );

             $this->db->where(array("user_id"=>$userid, "user_company_id"=>$company_id ));
             $this->db->update('user_profiles', $data); 

            redirect("your home controller name");

}

在你的模型函数中替换上面的代码..首先检查你的模型函数,确定正确的参数值..如果函数geting正确的值..那么上面的代码将正常工作你想要的。试试吧..

答案 2 :(得分:0)

只需使用codeigniter活动记录即可。还要确保您在函数中获取参数,并尝试使用$this->db->last_query()在函数末尾打印查询,如果这不起作用。

function setStatusApprove($userid,$company_id){

$this->db->where('user_id', $userid);
$this->db->where('company_id', $company_id);    
return $this->db->update('user_profiles', array('user_profile_is_active' , 1); 
}