제목 | sqlite3_driver.php에 list_fields() 추가하기 | ||
---|---|---|---|
글쓴이 | letsgolee | 작성시각 | 2014/07/19 09:21:33 |
|
|||
Codeigniter 3.0을 사용하면서 mysql로 작업하던 것을 sqlite3로 옮겨올 때 함수 처리가 문제가 되더라구요. 예를 든다면 Tank_Auth에서 Unix_timestamp()함수를 쓰는데 sqlite3에는 이게 지원되지 않습니다. 그래서 파일을 수정해서 strftime('%s', field_name)이런 식으로 지원되게 하는 방향으로 했는데 또 에러가 나서 로그를 보니 list_fields를 쓰는 곳에서 에러가 납니다. 소스를 뜯어보니 sqlite3에서는 _list_columns() 결과가 false가 되어 list_fields가 지원이 안되는 겁니다. 문제는 field_data()는 지원되면서... 그래서 이 함수를 이용해 list_fields()를 만들어 보았습니다. 이 함수를 sqlite3_driver.php 안에 넣어주시면 됩니다. /** * Fetch Field Names * * @param string the table name * @return array */ public function list_fields($table = '') { // Is there a cached result? if (isset($this->data_cache['field_names'][$table])) { return $this->data_cache['field_names'][$table]; } if ($table === '') { return ($this->db_debug) ? $this->display_error('db_field_param_missing') : FALSE; } $result = $this->field_data($table); $this->data_cache['field_names'][$table] = array(); foreach ($result as $row) { $this->data_cache['field_names'][$table][] = $row->name; } return $this->data_cache['field_names'][$table]; } |
|||
다음글 | view를 이용한 테마기능 구현 (1) | ||
이전글 | 아이피 주소로 위치정보를... (3) | ||
변종원(웅파)
/
2014/07/21 10:07:58 /
추천
0
팁 감사합니다. ^^
|
한대승(불의회상)
/
2014/07/21 13:38:53 /
추천
0
좋은 정보 감사 합니다.
|