| 제목 | 페이지네이션 작업중 오류 | ||
|---|---|---|---|
| 카테고리 | CI 2, 3 | ||
| 글쓴이 | 창쓰 | 작성시각 | 2017/08/04 11:53:45 |
|
|
|||
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Write_model extends CI_Model{
function __construct(){
parent::__construct();
}
public function write_gets(){
return $this->db->query('SELECT*FROM bookingdb')->result();
}
function get_list($table = 'bookingdb',$type='',$offset='',$limit='') {
$limit_query='';
if($limit!='' or $offset!=''){
//페이징 있을경우 처리
$limit_query = 'LIMIT'.$offset.','.$limit;
}
$sql = "SELECT * FROM".$table."order by id desc".$limit_query;
$query = $this->db->query($sql);
if($type == 'count'){
//리스트를 반환하는 것이 아니라 게시물의 개수를 반환
$result = $query->num_rows();
//$this->db->count_all($table);
}else{
//게시물 리스트반환
$result = $query->result();
}
return $result;
}
}
?>
밑에와 같은 오류를 발생합니다. 왜 그럴까요...ㄷㄷ;; 페이지네이션 작업중입니다..
오류내용 : A Database Error Occurred Error Number: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROMorder by id desc' at line 1 SELECT * FROMorder by id desc Filename: models/Write_model.php Line Number: 19 |
|||
| 다음글 | 염치없지만 페이징 관련하여 또 질문드립니다.. (14) | ||
| 이전글 | 코드이그나이터와 PDO (3) | ||
|
빛그림
/
2017/08/04 12:36:57 /
추천
0
|
|
창쓰
/
2017/08/04 12:55:49 /
추천
0
@빛그림님 말씀대로 작업을 진행하였으나, 동일한 에러가 납니다 ㅠㅠ 8번째 라인 return $this->db->query('SELECT * FROM bookingdb')->result(); // *앞 뒤로 공백을 넣었습니다 17번째라인 $sql = " SELECT * FROM ".$table." order by id desc ".$limit_query; // 공백을 주었습니다. 또한 c와 따옴표사이에도 공백을 주었지만, 동일한 에러가 발생하고 있습니다 ㅠㅠ |
|
빛그림
/
2017/08/04 13:03:36 /
추천
0
에러메세지의 내용을 보시면 FROM뒤에 테이블명이 나오지 않네요. $sql = "SELECT * FROM".$table."order by id desc".$limit_query; 을 $sql = "SELECT * FROM bookingdb order by id desc".$limit_query; 으로 수정해보세요. |
|
kaido
/
2017/08/04 13:04:07 /
추천
0
$this->db->from($table);
$this->db->order_by("id","desc");
if($limit!='' or $offset!='') $this->db->limit($limit, $offset);
$query = $this->db->get();
$data = $query->result();
개인적으로 액티브레코드를 권합니다. 페이지네이션 쿼리는 훨씬 보기 깔끔하게 정리 됩니다. 올려주신 해당 쿼리문에는 바인딩이나 이스케이프문을 넣지 않아서 보안에도 좋지 않습니다. [액티브는 자동으로 해줍니다.]
|
|
창쓰
/
2017/08/04 13:12:07 /
추천
0
@빛그림님 말씀대로 수정하였는데, A Database Error OccurredError Number: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT0,10' at line 1 SELECT * FROM bookingdb order by id desc LIMIT0,10 Filename: models/Write_model.php Line Number: 19 이번엔 조금 다른 오류가 생겼습니다. 어휴 어렵네요 ㅠㅠ 혹시 제가 db 테이블에 id값 시작을 1부터 설정했는데, 이것때문에 문제가 되는걸까요??ㅠ |
|
창쓰
/
2017/08/04 13:14:09 /
추천
0
@kaido님 답변 감사합니다 참고하여 적용해보도록 하겠습니다. |
|
빛그림
/
2017/08/04 13:16:47 /
추천
0
에러메세지를 보시면 LIMIT0,10이라고 나왔잖아요. $limit_query 부분이 잘못되어서 그렇습니다. LIMIT 0, 10으로 나와야 해요. 15번 라인에 'LIMIT을 ' LIMIT 으로 해보세요. 공백 삽입 |
|
창쓰
/
2017/08/04 13:32:47 /
추천
0
@빛그림 @kaido님 감사합니다! 덕분에 잘 해결되었습니다~ 감사합니다~
|
8번 라인에 SELECT*FROM을 SELECT * FROM으로 * 앞뒤에 공백을 주세요.
17번 라인에 FROM" 을 FROM " 으로 영문자 M과 따옴표 사이에 공백을 주세요.
그리고 "order 에도 " order이 되도록 따옴표와 영문자 o 사이에도 공백을 주시고요.
desc"에도 영문자 c와 따옴표 사이에 공백을 주어야 하고요.
"아버지가 방에 들어가신다"와 "아버지 가방에 들어가신다"의 차이 같은... ^^