我正在使用Codeigniter RESTful API将数据发送到我的Backbone App。例如:
public function a_get()
{
$this->load->database();
$sql = "SELECT artist_id, formated_name FROM `artists` WHERE formated_name LIKE 'A%' LIMIT 0, 50";
$query = $this->db->query($sql);
$data = $query->result();
if($data) {
$this->response($data, 200);
} else {
$this->response(array('error' => 'Couldn\'t find any artists with letter a!'), 404);
}
}
无论如何,我必须删除LIMIT
- 语句,以便显示所有数据,在本例中是带有开头字母“A”的艺术家,这是大量的数据。为此,我不能使用GET方法,因为它截断了LIMIT
- 语句上的字符串,所以我必须使用POST方法,但我不知道如何实现这一点。谁知道如何解决这个问题?
提前致谢
答案 0 :(得分:0)
如果您使用的是philsturgeon's library,那么:
$this->get('blah'); // GET param
$this->post('blah'); // POST param
$this->put('blah'); // PUT param
这是在readme.md。
答案 1 :(得分:0)
Dunno,如果你试过这个,但是让我们说你的POST发送了$ _POST ['letter']。还要记得过滤数据。您可能会在模型中使用它来执行查询或数据修改等操作,但我认为您最终会得到它。
public function a_post()
{
$letter = ucfirst(substr(mysql_real_escape_string($this->post('letter')), 0, 1));
$this->load->database();
if(isset($letter) && !empty($letter))
{
$sql = "SELECT artist_id, formated_name FROM `artists` WHERE formated_name LIKE '".$letter."%' LIMIT 0, 50";
$query = $this->db->query($sql);
$data = $query->result();
if($data) {
$this->response($data, 200);
} else {
$this->response(array('error' => 'Couldn\'t find any artists with letter '.$letter.'!'), 404);
}
}
else
{
$this->response(array('error' => 'Couldn\'t find any artists because of the empty string!'), 404);
}
}