使用Codeigniter在mysql数据库中更新

I have been trying to do the update the record in my database but i am getting the echo that the action have not being updated all i want is to update balance field in the database! The following is the code in the controller where i take value that i have passed from ajax and i am passing the email and data to model. Controller.

 public function transfer_amount(){


    $email  =  $this->input->post('view');



    $data = array(

            'balance' => $this->input->post('amount'),

    );

    $this->load->model('user_model');


    if($this->user_model->transfer_amount($data,$email)){


        echo'unsuccessfull';


    }
    else
    {

        $this->load->view('layer_service/success',$data);

    }



}

The Model which is supposed to update the field of the database is as following.

   function transfer_amount($data,$email){



    $this->db->where('email', $email);

    $this->db->update('tbl_users', $data);

        // Code here after successful insert
     // to the controller

    return true;


}

Based on your above comment you need to trim the whitespace from the email.

function transfer_amount($data, $email) {

  $this->db->update('tbl_users', $data, array(
    'email' => trim($email),
  ));

  // Code here after successful insert
  // to the controller

  return true;
}

Also in your controller you will want to replace this line

if($this->user_model->transfer_amount($data,$email)){

with

if( ! $this->user_model->transfer_amount($data,$email)) {

As your model returns TRUE on success but your controller is expecting FALSE on success.

You can also check that your update was successful and did actually change some rows in the database using a simple if statement such as

if(0 >= $this->db->affected_rows()) {
  // update unsuccessful
}

Update

How to add to the current balance in MySQL. You can simply add to the value which is already in the database.

$data = array(
  'balance' => 'balance + ' . $this->input->post('amount'),
);