• 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 ?>
  • 相关阅读:
    C# 编码约定
    SQL 合并多列为一行字符串
    Flex 粒子效果
    安装flashplayer 提示 "您尝试安装的 Adobe Flash Player" 版本不是最新版本. 请访问 Player 下载中心 获取最新、最安全版本"的解决方法
    Flex Builder 好用的插件
    【默认】博客正式开通
    Vulkanished2021重要内容简介
    论文读书笔记8
    论文读书笔记5
    论文读书笔记2
  • 原文地址:https://www.cnblogs.com/JeromeZ/p/5792233.html
Copyright © 2020-2023  润新知