2014-02-10 2 views
1

오류 번호 : 1064SQL 쿼리 제한 및 오프셋 오류

당신은 당신의 SQL 구문에 오류가 있습니다; 오프셋 아이디 DESC 제한 3에 의해 tbl_testimoni 위해 FROM 줄에 ''1

SELECT *를 '3'에 가까운 사용할 수있는 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인 '3'

파일 이름을 : D를 : \ WAMP \ www가 \ obatrohanifinalcopy 시스템 \ 데이터베이스 \ DB_driver.php

줄 번호 \ 내 쿼리 구문 330

안녕하세요, 저는 데 문제. 문제가 limitoffset 쿼리에 있다고 생각합니다. limitoffset없이 시도했기 때문에 제 스크립트가 제대로 작동 할 수 있습니다. 그러나 페이징 기능은 내 소원에 따라 작동하지 않습니다.

$url=$this->uri->segment(3,0); 
     $this->load->library('pagination'); 
     $config['base_url'] = site_url().'/testimonial/all/'; 
     $config['total_rows'] = $this->db->get('tbl_testimoni')->num_rows(); 
     $config['per_page'] = 3; 
     $this->pagination->initialize($config); 
     $data['page']=$this->pagination->create_links(); 

     $sql = " SELECT * FROM tbl_testimoni order by id DESC limit 3 offset ? "; 
     $binds = array($url); 
     $query = $this->db->query($sql, $binds); 
     $artikel = $query->result_array(); 
     $data['action'] = 'testimonial/all'; 
     $data['artikel'] = $artikel; 
     $data['content'] = 'content/testimoni'; 
     $this->load->view('template/default', $data); 

내보기에

매김이 코드를 사용하여 호출되었다 :

내 컨트롤러

<?php if(!empty($page)) echo $page; ?> 

내 코드가 제대로 작동하지 않습니다.

참고 :이 컨트롤러와 뷰를 이전 웹 사이트에서 사용하고 있었지만 거기에는 PostgreSQL을 사용하고있었습니다.

답변

0

당신은 $가 $this->db->query($sql, $binds);에 결합 통과 DB 드라이버가 그에게 가치를 생각하고를 교체 할 때 숫자가 아닌 문자열 '3'

해야 오프셋? 당신은뿐만 아니라 것을 처리 할 수 ​​있도록 '3'으로는 OFFSET 3

+0

결과가 좋지 않습니다. 방금 여러 데이터베이스를 호출하고 페이지 매김을 클릭합니다. 결과는 시작 페이지와 동일합니다 – ranggatry

+0

그 결과가 항상 동일한 경우 결과가 URL 세그먼트에있을 수 있습니다. uri 세그먼트에서 얻은 값을 확인할 수 있습니까? echo $ this-> db- > last_query()'를 호출하여 마지막 쿼리를 정확히 실행하는지 확인합니다. – Minhaz

1

시도 부울을 반환 할 수 있습니다 문서 $this->uri->segment()에 의해, 또한 $this->db->query($sql, intval($binds));

에서와 $binds 변수를 타입 캐스팅 있어야 할 곳에.

+0

여전히 이전과 같습니다. 다음 페이지 매김의 결과는 여전히 첫 페이지와 같습니다. 다음 데이터가 나타나지 않는다. – ranggatry