PHP CI框架最近学到的内容

CI框架配置方面注意的细节

在config里面的database.php里面是和数据库配置相关的内容

 1 $db['default'] = array(
 2     'dsn'    => '',
 3     'hostname' => '127.0.0.1,     //ip
 4     'username' => 'root',      //用户名
 5     'password' => 'root',      //密码
 6     'database' => 'kp_community', //数据库名称
 7     'dbdriver' => 'mysqli',      //数据库驱动,如果是php7的话只能使用mysqli
 8     'dbprefix' => 't_',          //数据表前缀,没有可以为空
 9     'pconnect' => FALSE,         //是否持续连接,一般不推荐TRUE,会影响连接资源
10     'db_debug' => (ENVIRONMENT !== 'production'),
11     'cache_on' => FALSE,        //缓存
12     'cachedir' => '',
13     'char_set' => 'utf8',          //编码
14     'dbcollat' => 'utf8_general_ci',
15     'swap_pre' => '',
16     'encrypt' => FALSE,
17     'compress' => FALSE,
18     'stricton' => FALSE,
19     'failover' => array(),
20     'save_queries' => FALSE       
//是否保存查询语句,数据库性能非常棒的情况下可以设置为TRUE,可以加快效率,一般设置成什么要看项目的实际情况
21 );
//由于CI框架有的时候就算是'pconnect' => FALSE 和 'save_queries' => FALSE 都设置了,还会
//出现too many contions的错误的话,就检查一下是否是连接数过小了,还需要在代码里面涉及到query
//后面手动加上$this->db->close(),因为根据使用情况来看CI框架的断开连接机制并不是马上断开
  //而是过几秒再断开的,所以如果在几秒的时间段内同时访问过多可能会出现问题

 

CI的curd操作

 1 <?php 
 2 
 3 defined('BASEPATH') OR exit('No direct script access allowed');
 4 
 5 class Test_model extends CI_Model {
 6     //构造函数
 7     public function __construct(){
 8         parent::__construct();
 9         $this->load->database();
10     }
11     
12     public function Select() {
13 
14             //查询操作,自定义字符串方式
15             $sql1    = "SELECT * FROM TEST WHERE ID > 1";  //查询id>1的所有值
16             $query1  = $this->db->query($sql1);    //把查询语句转化为结果集
17             $result1 = $query1->result_array();    //result_array()是转化为二维数组 
18             $count   = $query1->num_rows();     //num_rows()是查询结果集的行数
19 
20             $sql2    = "SELECT * FROM TEST WHERE ID = 1"; //查询ID=1的一行值
21             $query2  = $this->db->query($sql2);    //把查询语句转化为结果集
22             $result2 = $query2->row_array();    //row_array()是转化为一维数组 
23            //CI的AR类
$id = array("id"=>2);
   $result3 = $this->where($id)->select("id,userName,xxxxx")->limit(1)->get("test");
24 //查询行数的不只有num_rows() 25 $count = $this->db->count_all_results($sql1); //这个用法同样可以实现查询结果集的行数 26 27 //查询一个表的行数 28 $tableCount = $this->db->count_all("TEST");//查询TEST表的所有行数 29 } 30 31 public function Insert() { 32 33 $data = array( 34 "id" => 3, 35 "name"=> "测试数据" 36 ); 37 //第一种方法,CI的insert方法 38 $this->db->insert("TEST",$data);//往TEST表里面插入data的数据 39 echo $this->db->affected_rows();//影响行数 40 41 //第二种方法,通过query 42 $sql = "INSERT INTO TEST(id,name) VALUES(3,'测试数据')"; 43 $this->db->query($sql); 44 echo $this->db->affected_rows();//影响行数 45 } 46 47 public function Delete() { 48 49 //第一种方法,CI的delete方法 50 $this->db->where(array("id"=>1))->delete("TEST");//TEST表里面删除id=1的数据 51 echo $this->db->affected_rows();//影响行数 52 53 //第二种方法,通过query 54 $sql = "DELETE FROM TEST WHERE id = 1"; 55 $this->db->query($sql); 56 echo $this->db->affected_rows();//影响行数 57 } 58 59 public function Update() { 60 61 $newdata = array( 62 "name" => "新的测试数据" 63 ); 64 //第一种方法,CI的update方法 65 $this->db->where(array("id"=>3))->update("TEST",$newdata);//TEST表中id=3的数据更新为newdata 66 echo $this->db->affected_rows();//影响行数 67 68 //第二种方法,通过query 69 $sql = "UPDATE TEST SET name = '新的测试数据' WHERE id = 3"; 70 $this->db->query($sql); 71 echo $this->db->affected_rows();//影响行数 72 } 73 74 public function Trans() { 75 $this->db->trans_begin(); 76 /* 77 一大串CURD的数据操作 78 */ 79 if( $this->db->trans_status() === FALSE ) { 80 81 $this->db->trans_rollback(); //事务回滚 82 $this->db->close(); 83 return -1; 84 } else { 85 86 $this->db->trans_commit(); //事务提交 87 $this->db->close(); 88 return 1; 89 } 90 } 91 92 }

 CI框架的json输出格式

 1 <?php 
 2 
 3 defined('BASEPATH') OR exit('No direct script access allowed');
 4 error_reporting(E_ERROR | E_WARNING | E_PARSE);
 5 
 6 class Test extends CI_Controller {
 7 
 8     const STATUS      = 1998;      //如果SESSION失效后的状态码
 9     const WYID        = 'com_wyId';//物业ID
10     const CODE        = 'com_code';//重定向单点登陆接口返回的code,有效期2分钟,使用一次后失效
11     const ACCESSTOKEN = 'com_accesstoken';//获取到的访问凭证
12     //const WYID        = 'com_wyId';//物业ID
13     const LOGININFO   = 'com_info';//登录判断条件
14     //构造方法
15     public function __construct(){
16         parent::__construct();
17         //加载模型
18         $this->load->model('test_model');
19     $this->load->library('session');
20     }
21     
22     public function Test() {
23      $arr = array("id"=>1,"name"=>"我的名字");
24          //以JSON格式输出
25         $this -> output 
26                 -> set_content_type('application/json') 
27                 -> set_output(json_encode($arr));
28     }
29 }
30 
31 
32 ?>

 

posted @ 2016-08-21 10:21  JeromeZ  阅读(478)  评论(0编辑  收藏  举报