码迷,mamicode.com
首页 > Web开发 > 详细

PHP CI框架最近学到的内容

时间:2016-08-21 11:00:17      阅读:348      评论:0      收藏:0      [点我收藏+]

标签:

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         
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 ?>

 

PHP CI框架最近学到的内容

标签:

原文地址:http://www.cnblogs.com/JeromeZ/p/5792233.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!