본문 바로가기
Backend/CodeIgniter

[Codeigniter] DB에서 원하는 값 가져오기!

by pin9___9 2023. 1. 20.
728x90

서론

model에서 db에 insert를 해야 하는 상황인데 key값을 auto_increment로 하자니 이전 값이 삭제돼도 그 값을 기억하고 그다음 값을 입력해 줘서 사용할 수 없고, 일일이 다음 값을 넣어주기에는 이전 값에 +1만 해주면 될 것 같아 굳이라는 생각을 하게 되었습니다.

 

시도 과정

첫 번째 시도

$result = $this->db->select('필드명')->from('테이블명')->order_by('필드명','desc')->limit(1)->get()->row();
값이 가져와 지지 않습니다.
    ▶이상하게도 NULL값도 아니고 그냥 빈 값이 나옵니다...

 

두 번째 시도

$result = $this->db->select('필드명')->from('테이블명')->order_by('필드명','desc')->limit(1)->get()->result();
 값이 array값입니다.
    값이 array값으로 나와 db에 insert 되지 않습니다...

 

세 번째 시도

$this->db->select("필드명");
$this->db->order_by("필드명","DESC");
$result = $this->db->get("테이블명")->row();
값이 가져와 지지 않습니다.
    첫 번째 시도와 같은 결과가 나옵니다.
 

네 번째 시도

$result = $this->db->count_all("테이블명");
 총 개수의 +1을 할 경우 중간에 값이 삭제 되었을 때 마지막 값이 중복됩니다.

 

해결 방법

$query = "SELECT 필드명 FROM 테이블명 ORDER BY 필드명 DESC LIMIT 1";

$result = $this->db->query($query);
$row = (array)$result->row(); // array
$row['필드명']; // 값 추출

query에 값을 넣어주고 object인 $result값을 array로 바꿔준 후 값을 추출하였습니다.

 

마치며

코드를 짤 때 처음부터 잘 계획하고 개발해야겠다고 다시 한번 다짐을 하는 계기가 되었습니다.😥😥

728x90

'Backend > CodeIgniter' 카테고리의 다른 글

[CodeIgniter] 캐싱 드라이버  (0) 2023.01.04

댓글