제목 | 페이지네이션 작업중 오류 | ||
---|---|---|---|
카테고리 | 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와 따옴표 사이에 공백을 주어야 하고요.
"아버지가 방에 들어가신다"와 "아버지 가방에 들어가신다"의 차이 같은... ^^