【问题标题】:I am not able to do simple database update using codeigniter我无法使用 codeigniter 进行简单的数据库更新
【发布时间】:2016-01-04 06:34:05
【问题描述】:

我正在使用一个非常简单的代码来使用 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);
}

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

【问题讨论】:

  • echo $query; 的输出是什么?
  • 第一件事是从您的查询中删除. " " 部分,该部分不需要所有其他连接,因为双引号可以解析php中的变量。
  • prafulla kumar sahu,感谢您提供的信息。但它没有任何改变。
  • 将此设置为 from 并将其写入操作提交
  • 解决了。谢谢阿卜杜拉。我已将视图文件更改输入类型按钮更改为表单输入类型 = 提交。现在它正在更新数据库。它进入一个空白页面我怎样才能留在同一页面?

标签: php database codeigniter


【解决方案1】:

只需使用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');

您需要在form action 中写下您的网址,而不是使用onclick function

action="<?php echo base_url(); ?>inc/setStatusApprove/<?php echo $members['user_id']; ?>/<?php echo $members['user_company_id']; ?>"

【讨论】:

    【解决方案2】:
     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");
    
    }
    

    在您的模型函数中替换上面的代码..首先检查您的模型函数是否获得正确的参数值..如果函数获得正确的值..然后上面的代码将按照您的意愿正常工作。试试看。。

    【讨论】:

      【解决方案3】:

      只需使用 codeigniter 活动记录即可。还要确保您在函数中获取参数并尝试在函数末尾使用$this-&gt;db-&gt;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); 
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        • 1970-01-01
        • 2021-09-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多