使用Codeigniter在mysql数据库中更新

时间:2015-11-17 15:04:24

标签: php mysql codeigniter

我一直在尝试更新我的数据库中的记录,但我得到的回应是操作没有被更新我想要的是更新数据库中的平衡字段! 以下是控制器中的代码,其中我获取了从ajax传递的值,我将电子邮件和数据传递给模型。 控制器。

 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);

    }



}

应该更新数据库字段的模型如下。

   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;


}

1 个答案:

答案 0 :(得分:0)

根据您的上述评论,您需要修剪电子邮件中的空白。

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;
}

同样在您的控制器中,您将需要替换此行

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

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

由于您的模型在成功时返回TRUE,但您的控制器在成功时期望FALSE

您还可以检查您的更新是否成功,并使用简单的if语句(例如

)实际更改了数据库中的某些行
if(0 >= $this->db->affected_rows()) {
  // update unsuccessful
}

<强>更新

如何添加到MySQL中的当前余额。您只需添加到数据库中已有的值即可。

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