【问题标题】:Can't update my database record in codeigniter, no error is appearing无法在 codeigniter 中更新我的数据库记录,没有出现错误
【发布时间】:2017-04-11 04:35:51
【问题描述】:

我对 php 很陌生,没有出现错误,但显然无法更新数据库中的数据。

The controller

  public function update_user_view() { 
     $this->load->helper('form'); 
     $user_id = $this->uri->segment('3'); 
     $query = $this->db->get_where("users",array("user_id"=>$user_id));
     $data['records'] = $query->result(); 
     $data['old_user_id'] = $user_id; 
     $this->load->view('user_edit',$data); 
  } 

  public function update_user(){ 
     $this->load->model('user_model');

     $data = array(  
        'user_id' => $this->input->post('user_id'),
        'name' => $this->input->post('name'), 
        'nickname' => $this->input->post('nickname'), 
        'email' => $this->input->post('email'), 
        'hadd' => $this->input->post('hadd'), 
        'gender' => $this->input->post('gender'), 
        'cpnum' => $this->input->post('cpnum'), 
        'comment' => $this->input->post('comment') 

     ); 

     $old_user_id = $this->input->post('old_user_id'); 
     $this->user_model->update($data,$old_user_id); 

     $query = $this->db->get("users"); 
     $data['records'] = $query->result(); 
     $this->load->view('user_view',$data); 
  } 

the model

<?php 
   class User_model extends CI_Model {

      function __construct() { 
         parent::__construct(); 
      } 

      public function insert($data) { 
         if ($this->db->insert("users", $data)) { 
            return true; 
         } 
      } 

      public function delete($user_id) { 
         if ($this->db->delete("users", "user_id = ".$user_id)) { 
            return true; 
         } 
      } 

      public function update($data,$old_user_id) { 
         $this->db->set($data); 
         $this->db->where("user_id", $old_user_id); 
         $this->db->update("users", $data); 
      } 
   } 
?> 

【问题讨论】:

  • echo $this-&gt;db-&gt;last_query();更新后看看有什么问题
  • @FastSnail 什么都没发生。
  • 什么都没有?你应该看到实际的 mysql 查询
  • @FastSnail 它显示 SELECT * FROM users WHERE user_id = '100' 这是我试图编辑的数据的主键和值。
  • 你有没有在$this-&gt;user_model-&gt;update($data,$old_user_id); 行之后回显它?

标签: php codeigniter codeigniter-3


【解决方案1】:

从模型的更新方法中删除$this-&gt;db-&gt;set($data);。这不是必需的,因为更新查询数据部分用于设置表记录。

【讨论】:

    【解决方案2】:

    做吧

    $this->db->where("user_id", $old_user_id); 
    $this->db->update("users",$data);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多