如何在 codeigniter 中使用 api 更新 table
how to update table using api in codeigniter
我一直在使用 codeigniter 中的 api 更新 table 行,
我已经阅读了 code tutsplus
的教程
但没有具体的做法,
所以我自己尝试并卡住了:-(
url 请求:
http://localhost/work/bnilife/v1/signup/user/post?nopol=a1b2c3d4e5&username=agus&password=kucingtikus&captcha=c12ds
这是 json 回复:
{
"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); }
是否有任何错误或输入错误,
谢谢你们
我是新手。
您可以查看 codeigniter 文档数据库方法的工作原理http://www.codeigniter.com/userguide3/database
public function signup_insert($data) {
$this->db->where('nopol',$data['nopol']);
return $this->db->update('user', $data);
}
在您的情况下,您需要 return 否则您不能将该方法用作 $result,因为它将等于 NULL..
- 检查和 CI 表单验证库,因为您不验证输入数据(甚至转义)可能会产生问题。
- 而且重要的是,您应该编写正确的方法名称:
signup_insert
应该 INSERT
而不是 UPDATE
。
'nopol' => $this->input->get_post('nopol') in this change to 'nopol' => $this->input->get_post('no_polis'),
还有 $this->db->where($condition) $condition 未定义。
就像@svetlio 说的,
如果 nopol 是拼写错误(错误类型)或空值,我会添加一些解决方案。
它会 return 错误,
所以我添加了一些代码来做到这一点。
如下所示:
if ($this->db->affected_rows() === 1) {
return true;
} else {
return false;
}
}
所以它不会像:
return $this->db->update('user', $data);
我一直在使用 codeigniter 中的 api 更新 table 行, 我已经阅读了 code tutsplus
的教程但没有具体的做法, 所以我自己尝试并卡住了:-(
url 请求:
http://localhost/work/bnilife/v1/signup/user/post?nopol=a1b2c3d4e5&username=agus&password=kucingtikus&captcha=c12ds
这是 json 回复:
{
"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); }
是否有任何错误或输入错误, 谢谢你们 我是新手。
您可以查看 codeigniter 文档数据库方法的工作原理http://www.codeigniter.com/userguide3/database
public function signup_insert($data) {
$this->db->where('nopol',$data['nopol']);
return $this->db->update('user', $data);
}
在您的情况下,您需要 return 否则您不能将该方法用作 $result,因为它将等于 NULL..
- 检查和 CI 表单验证库,因为您不验证输入数据(甚至转义)可能会产生问题。
- 而且重要的是,您应该编写正确的方法名称:
signup_insert
应该INSERT
而不是UPDATE
。
'nopol' => $this->input->get_post('nopol') in this change to 'nopol' => $this->input->get_post('no_polis'),
还有 $this->db->where($condition) $condition 未定义。
就像@svetlio 说的, 如果 nopol 是拼写错误(错误类型)或空值,我会添加一些解决方案。 它会 return 错误, 所以我添加了一些代码来做到这一点。 如下所示:
if ($this->db->affected_rows() === 1) {
return true;
} else {
return false;
}
}
所以它不会像:
return $this->db->update('user', $data);