2015-04-06 51 views
1

使用API​​更新表我卡在使用API​​ CI中, 我已经阅读code tutsplus如何在笨

教程,但没有spesific做更新表行, 所以我想我自己并卡住了:-(

网址:

http://localhost/work/bnilife/v1/signup/user/post?nopol=a1b2c3d4e5&username=agus&password=kucingtikus&captcha=c12ds 

这里的JSON respon:

{ 
"error": "error :-(" 
} 

我的控制器看起来像下面这样:

public function user_post() 
    { 
    date_default_timezone_set('Asia/Jakarta'); 
    $datestring ="%Y-%m-%d %H:%i:%s"; 
    $time  =time(); 
    $datetime =mdate($datestring, $time); 

    $data = array (
      'nopol' => $this->input->get_post('nopol'), 
      'username' => $this->input->get_post('username'), 
      'password' => sha1($this->input->get_post('password')), 
      'created_at' => $datetime, 
      'updated_at' => $datetime 
    ); 

    $result = $this->signup_m->signup_insert($data); 
    if($result) { 
     $this->response($data, 200); 
    } else { 
     $this->response(array('error' => 'error :-('),400); 
    } 
    } 

我的模型:

public function signup_insert($data) { 

    // Query to check whether username already exist or not 
    $condition = "nopol=" . "'" . $data['nopol'] . "'" ; 
    $this->db->where($condition); 
    $this->db->update('user', $data); } 

有没有什么不对或misstype, 感谢你们 我是新的这个东西。

+0

1)。你真正想要做什么2)你已经在你的模型中编写了'//查询来检查用户名是否已经存在',而不是检查你是直接更新你的字段3)'if($ result)'它没有有任何意义 – 2015-04-06 11:19:51

回答

1

您可以检查笨文档如何工作数据库方法http://www.codeigniter.com/userguide3/database

public function signup_insert($data) { 
    $this->db->where('nopol',$data['nopol']); 
    return $this->db->update('user', $data); 
} 

在你的情况,你需要和返回否则你无法使用方法$结果,因为这将等于NULL ..

  • 检查和CI表单验证库,因为您不验证您的输入数据(甚至转义)它可能会产生问题。
  • 重要的是,您应该编写正确的方法名称:signup_insert应该INSERT而不是UPDATE
+0

谢谢你的解释,它的工作原理。花花公子。再次感谢。 @svetlio – 2015-04-07 02:07:20

0

'nopol' => $this->input->get_post('nopol') in this change to 'nopol' => $this->input->get_post('no_polis'),

也$这 - > DB->其中($条件)$条件没有限定。

0

像@svetlio说, 我添加一些解决方案,如果诺卜醇是typo(misstype)或null。它会返回false, ,所以我添加一些代码来做到这一点。 这样下面:

if ($this->db->affected_rows() === 1) { 
    return true; 
    } else { 
    return false; 
    } 
    } 

所以它不会像:

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