12
CodeIgniter

Code igniter 20160119

Embed Size (px)

Citation preview

Page 1: Code igniter 20160119

CodeIgniter 

Page 2: Code igniter 20160119

CodeIgniter

코드이그나이터 (CodeIgniter) 는PHP 를이용하여웹사이트를

구축하고자하는사람들을위한 개발프레임워크

Page 3: Code igniter 20160119

CodeIgniter 적용하려는이유

• MVC 기반 (Model-View-Controller)

Page 4: Code igniter 20160119

CodeIgniter 적용하려는이유

• 가벼운 Framework• 다양한 DB지원 - MySQL - MSSQL - Postgres - Oracle - SQLite

Page 5: Code igniter 20160119

CodeIgniter 적용하려는이유

• MySQL MSSQL DB 전환이 비교적쉬움

• 소스코드의복잡성을낮춤• DB Query 생성과수정을소스코드상에서

쉽게대응• 인수인계비용을낮춤

Page 6: Code igniter 20160119

DB Query 방법차이

• 기존의소스 ( 목록출력 )$sql = getUserListSql($params, $pi, $ps);executePageQuery_mysql($conn,$sql,$cnt,$pi,$ps);

function getUserListSql($params, $page, $pageSize) { …..

$sql = "SELECT*

FROM account WHERE 1=1 ";$sql .= " ORDER BY ".$orderBy." ".$ordering." LIMIT ".$first.", ".

$end;

return $sql;}

Page 7: Code igniter 20160119

DB Query 방법차이

• CodeIgniter 관련소스

$query = $this->db->order_by($orderBy, $ordering);$query = $this->db->limit($first, $end);$query = $this->db->get_where('account');

$json_ret = json_encode($query->result());

# 확인$LastSQL = $this-> db- >last_query();echo $LastSQL;>>> SELECT * FROM `account` ORDER BY `sn` ASC

Page 8: Code igniter 20160119

DB Connection 과 Close

• Connection - 자동연결 (auto connect) application/config/autoload.php - 수동연결 $this->load->database();

• Close CodeIgniter 가자동으로 db 연결을닫아줌 - 수동연결닫기 $this->db->close();

Page 9: Code igniter 20160119

DB Query 결과 json 처리

$query = $this->db->query("select now() as NOWDATE; ");$json_ret = json_encode($query->result());echo $json_ret;

[결과 ][{"NOWDATE":"2016-01-19 10:32:03"}]

Page 10: Code igniter 20160119

jqGrid 구현

<table id="jqGrid"></table><div id="jqGridPager"></div>

<script> $(document).ready(function () { $("#jqGrid").jqGrid({ url: '/index.php/GetData/userListModel', mtype: "GET",

datatype:"json",colModel: [

{ label:'Account SN', name: 'sn', align:"center", width: 150 }, { label:'Account ID', name: 'id', align:"center", width: 150 },

…..],viewrecords: true, rowList:[10,20,30],

width: 800, height: 280, rowNum: 20, caption:'captions',

loadtext:'loading ... ', pager: "#jqGridPager" }); });</script>

Page 11: Code igniter 20160119

jqGrid 구현

<?php /* application/models/GetData_model.php */class GetData_model extends CI_Model {

….public function index(){}

public function userList() {…..$totalCnt = $this->db->count_all_results('account');

$query2 = $this-> db- >order_by($orderBy, $ordering);$query2 = $this-> db- >limit($first, $end);$query2 = $this-> db- >get_where('account');$json_ret = json_encode($query2->result());…..echo '{"page":"'.$page.'","total":"'.$total_pages.'","records":"'.

$totalCnt.'","rows":';echo $json_ret;echo '}‘;

}}

Page 12: Code igniter 20160119

감사합니다 .