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

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

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

CI的curd操作

 <?php 

 defined('BASEPATH') OR exit('No direct script access allowed');

 class Test_model extends CI_Model {
//构造函数
public function __construct(){
parent::__construct();
$this->load->database();
} public function Select() { //查询操作,自定义字符串方式
$sql1 = "SELECT * FROM TEST WHERE ID > 1"; //查询id>1的所有值
$query1 = $this->db->query($sql1); //把查询语句转化为结果集
$result1 = $query1->result_array(); //result_array()是转化为二维数组
$count = $query1->num_rows(); //num_rows()是查询结果集的行数 $sql2 = "SELECT * FROM TEST WHERE ID = 1"; //查询ID=1的一行值
$query2 = $this->db->query($sql2); //把查询语句转化为结果集
$result2 = $query2->row_array(); //row_array()是转化为一维数组
   //CI的AR类
$id = array("id"=>2);
   $result3 = $this->where($id)->select("id,userName,xxxxx")->limit(1)->get("test");

//查询行数的不只有num_rows()
$count = $this->db->count_all_results($sql1); //这个用法同样可以实现查询结果集的行数 //查询一个表的行数
$tableCount = $this->db->count_all("TEST");//查询TEST表的所有行数
} public function Insert() { $data = array(
"id" => 3,
"name"=> "测试数据"
);
//第一种方法,CI的insert方法
$this->db->insert("TEST",$data);//往TEST表里面插入data的数据
echo $this->db->affected_rows();//影响行数 //第二种方法,通过query
$sql = "INSERT INTO TEST(id,name) VALUES(3,'测试数据')";
$this->db->query($sql);
echo $this->db->affected_rows();//影响行数
} public function Delete() { //第一种方法,CI的delete方法
$this->db->where(array("id"=>1))->delete("TEST");//TEST表里面删除id=1的数据
echo $this->db->affected_rows();//影响行数 //第二种方法,通过query
$sql = "DELETE FROM TEST WHERE id = 1";
$this->db->query($sql);
echo $this->db->affected_rows();//影响行数
} public function Update() { $newdata = array(
"name" => "新的测试数据"
);
//第一种方法,CI的update方法
$this->db->where(array("id"=>3))->update("TEST",$newdata);//TEST表中id=3的数据更新为newdata
echo $this->db->affected_rows();//影响行数 //第二种方法,通过query
$sql = "UPDATE TEST SET name = '新的测试数据' WHERE id = 3";
$this->db->query($sql);
echo $this->db->affected_rows();//影响行数
} public function Trans() {
$this->db->trans_begin();
/*
一大串CURD的数据操作
*/
if( $this->db->trans_status() === FALSE ) { $this->db->trans_rollback(); //事务回滚
$this->db->close();
return -1;
} else { $this->db->trans_commit(); //事务提交
$this->db->close();
return 1;
}
} }

CI框架的json输出格式

 <?php 

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

PHP CI框架最近学到的内容的更多相关文章

  1. CI框架整合yar

    第一步:在CI框架中libraries目录下建立yar.php 文件 内容: <?php /** * yar 接口 */ class Yar { /** * 构造函数 * * @return v ...

  2. CI框架对HTML输入的处理/CI框架引用ueditor时对提交内容的默认处理

    项目里近期用到了富文本编辑器,可是写入数据的时候总是写入, <p xss="removed">内容</p> 所有的样式都会被改写成这样,xss=" ...

  3. CI框架使用PHPmailer发送邮件找回密码

    之前用PHP+Mysql+jQuery结合ThinkPHP做了一个用户验证邮箱找回密码功能<ThinkPHP之PHP+Mysql+jQuery发送邮箱找回密码>,现在分享一下用CI框架结合 ...

  4. 【军哥谈CI框架】之CI中集成百度UEditor

    Hello,各位亲,新的一周来临啦,很高兴这么快又跟大家伙见面!话说上一回,军哥带大家用JQuery写了一个城市级联菜单的例子 ,不知道亲们学会了多少,是否自己可以独立写出来了呢. 军哥很是期待大家学 ...

  5. CI框架使用PHPmail插件发送QQ邮件:

    有助请顶,不好请评.0:33 2016/3/12CI框架使用PHPmail插件发送QQ邮件:发送成功,不过修改了主机参数,还包含了一个phpmail中的一个另外的文件,详见下方:参见:http://c ...

  6. CI框架如何在主目录application目录之外使用uploadify上传插件和bootstrap前端框架:

    19:29 2016/3/10CI框架如何在主目录application目录之外使用uploadify上传插件和bootstrap前端框架:项目主路径:F:\wamp\www\graduationPr ...

  7. PHP项目感悟 -- 从CI框架来看iOS的MVC

    其实这几天一直都想找时间把这个感悟整理出来,也是这一段一直思考的问题,因为这一段参加一个PHP后台项目的开发,框架使用的是CI,随着项目的进展,对于CI接触的也越多,但是由于理解的可能并不深刻,我也只 ...

  8. CI框架源码阅读笔记9 CI的自动加载机制autoload

    本篇并不是对某一组件的详细源码分析,而只是简单的跟踪了下CI的autoload的基本流程.因此,可以看做是Loader组件的分析前篇. CI框架中,允许你配置autoload数组,这样,在你的应用程序 ...

  9. CI框架源码阅读笔记3 全局函数Common.php

    从本篇开始,将深入CI框架的内部,一步步去探索这个框架的实现.结构和设计. Common.php文件定义了一系列的全局函数(一般来说,全局函数具有最高的加载优先权,因此大多数的框架中BootStrap ...

随机推荐

  1. Review1-11

    泛型 泛型类 Public 类名 class<T>{} 泛型方法 Public static <T> 返回类型 方法名(<T> t){} 泛型类型必须使用引用类型 ...

  2. AS3事件机制概述

    事件机制是AS3的核心功能之一,没有充分掌握事件机制的方方面面,就不能算是精通AS3语言. 1. AS3事件机制的主要成员 IEventDispatcher:事件派发对象接口,定义了添加.派发.移除. ...

  3. CF Codeforces Round #258 (Div. 2) B (451B)

    题意:找出一段逆序! 预存a[]数组到b[]数组.将b排序,然后前后找不同找到区间[l,r],然后推断[l,r]是否逆序就能够了!.当然还得特判本身就是顺序的!! ! AC代码例如以下: #inclu ...

  4. HDU Exponentiation 1063 Java大数题解

    Exponentiation Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  5. android webview点击返回键回到上一个html

    android webview点击返回键返回上一个html @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ( ...

  6. Android - 不管在应用的哪个activity按Home键整个App就结束了

    最开始,客户反映说在用app的时候,来个电话,接完再点app,不是原来的界面,而是重启了.数据都没了,所以就在activity重写onSaveInstanceState方法,将数据保存起来.后经测试发 ...

  7. 在win7下装ubuntu(硬盘版安装)及遇到的问题

    都怪自己弄什么Ubuntu下的Android Studio,因为GFW,gradle总下载不了,用命令行下载一半关机了,然后Ubuntu就这样被我搞残废了.又张罗着重装. 其实就是参照网上的帖子,算是 ...

  8. English - refer to...和refer to...as

    refer to...和refer to...as...本来就是refer的两个固定搭配,这个只能讲讲后两者用法,剩下的就是单独的refer的用法了. 1. refer to sb/sth 指的是/提 ...

  9. 查询离指定日期最近的一条数据(oracle)

    select * from ( Select   *   from   t_currency_rate   where f_orig_curr='USD'   and f_dest_curr='RMB ...

  10. iOS开发蓝牙 蓝牙4.0的各种踩过的坑,希望你们少踩点

    1.首先建立这个三个参数 @property (nonatomic,strong)CBCentralManager * manager; @property (nonatomic,strong)CBP ...