php:ci学习笔记1

ci下载的开发包:

phpstudy的部署:

phpstudy的根目录是:D:\WWW

新建目录 cms

把ci开发包的application   system index.php  license.txt copy到cms目录下面;

运行phpstudy,php版本选择5.4以上,因为在readme.rst中阅读到,php的版本最好是在5.4以及以上最佳;

*******************
Server Requirements
*******************

PHP version 5.4 or newer is recommended.

It should work on 5.2.4 as well, but we strongly advise you NOT to run
such old versions of PHP, because of potential security and performance
issues, as well as missing features.

打开phpstudy首页,

然后进入选择cms这个项目

看说明,这个页面是在显示的 application/view/welcome_message.php这个页面的内容,然后是被控制器 application/controllers/Welcome.php控制的;

为了验证,我修改一下welcome_message.php,加上一个图片,改变一些文字;

先看效果:

注意的地方:

页面渲染耗时{elapsed_time}秒 CI版本 <?php echo CI_VERSION ?>  环境 <?php echo ENVIRONMENT ?>

变量意义 变量名称
渲染时间 {elapsed_time}
ci的版本 CI_VERSION
环境名称 ENVIRONMENT

controller/welcome.php

$this ->load-> view(‘welcome_message‘ );

加载视图,视图名称是welcome_message,视图的位置是application/view目录下

控制器:代理完成某项任务的php类,充当MVC架构程序的粘合剂;

url:http://example.com/[控制器类名]/[控制器方法名]/[所需参数]

新建一个控制器

namespace:

kind:

file extension:


namespace any8 ;

class Pages extends CI_Controller{

public function view ($page = ‘home‘){ 
    
    }

}

CI_Controller这个类对应于system/core/Controller.php,又叫超级对象,可以使用$this来调用它的变量,方法,一些其它的操作;

public function view ( $page = ‘home‘ ){

if ( ! file_exists( APPPATH. ‘views/pages/‘ .$page . ‘.php‘)) 
    {
        // 页面不存在 
        show_404 () ;
    }

$data [ ‘title‘] = ucfirst( $page ); // 将title中的第一个字符大写

$this -> load-> view (‘templates/head‘ , $data) ;
    $this -> load-> view (‘pages/‘ . $page, $data ); 
    $this -> load-> view (‘templates/foot‘ , $data) ;

}

注意的地方:

file_exists()  查看文件是否存在   APPPATH 应用的路径,对应application目录

ucfirst() 把第一个字母变为大写

view(视图文件位置,视图所需数据)

这段代码位于  application/config/routes.php

默认的控制器是welcome 默认的方法是index

所以浏览器里访问  localhost/cms/访问的是Welcome.php 对应的welcome_message.php的视图

数据库的配置: application/config/database.php

  • hostname - 数据库的主机名,通常位于本机,可以表示为 "localhost".
  • username - 需要连接到数据库的用户名.
  • password - 登陆数据库的密码.
  • database - 你需要连接的数据库名.
  • dbdriver - 数据库类型。如:mysql、postgres、odbc 等。必须为小写字母。
  • dbprefix - 当运行Active Record查询时数据表的前缀,它允许在一个数据库上安装多个CodeIgniter程序.
  • pconnect - TRUE/FALSE (boolean) - 使用持续连接.
  • db_debug - TRUE/FALSE (boolean) - 显示数据库错误信息.
  • cache_on - TRUE/FALSE (boolean) - 数据库查询缓存是否开启,详情请见数据库缓存类
  • cachedir - 数据库查询缓存目录所在的服务器绝对路径。
  • char_set - 与数据库通信时所使用的字符集。
  • dbcollat - 与数据库通信时所使用的字符规则。

    提示: 就MYSQL或MYSQLi数据库而言,如果服务器运行环境PHP版本小于5.2.3、MYSQL版本小于5.0.7,那么该项设置仅被用来备份(由数据库维护类DB Forge所创建查询)。如果使用多字节字符集并且使用低版本PHP环境中不兼容的mysql_real_escape_string()函数,它将使网站更容易受到SQL注入的危险。
  • swap_pre - 替换默认的dbprefix表前缀,该项设置对于分布式应用是非常有用的,你可以在查询中使用由最终用户定制的表前缀。
  • autoinit - 当数据库类库(database library)被载入的时候是否需要自动连接数据库,如果设置为FALSE,将在首次查询前进行连接。
  • stricton - TRUE/FALSE (boolean) - 是否强制使用 "Strict Mode" 连接, 在开发程序时,使用 strict SQL 是一个好习惯。
  • port - 数据库端口号. 要使用这个值,你应该添加一行代码到数据库配置数组。$db[‘default‘][‘port‘] = 5432;

显示的关闭数据库链接  $this->db->close();

重新链接/保持有效连接  $this->db->reconnect();

链接多数据库:

$DB1 = $this->load->database(‘group_one‘, TRUE);
$DB2 = $this->load->database(‘group_two‘, TRUE);

手动链接数据库:

$this->load->database();

可用的参数

  1. 数据库连接值,用数组或DSN字符串传递。
  2. 是否返回连接ID,TRUE/FALSE (boolean),默认值为FALSE (参阅下面的“连接多数据库”)。
  3. 是否启用 Active Record 类,TRUE/FALSE (boolean),默认值为 NULL。如有疑问,请查看/system/core/Loader.php的database()方法

自动链接:

“自动连接” 功能将在每一个页面加载时被自动实例化数据库类。要启用“自动连接”,可在application/config/autoload.php中的 library 数组里添加 database

$autoload[‘libraries‘] = array(‘database‘);

模型:模型是专门用来和数据库打交道的PHP类

最基本的模型类必须像这样:

class Model_name extends CI_Model {

function __construct()
    {
        parent::__construct();
    }
}

Model_name 是模型类的名字。 类名的首字母必须大写,其他字母小写。 并且确保你的类继承了基本模型类(Base Model Class)。

文件名应该是模型类名的小写版。

写了一个例子:


class Account extends CI_Controller{

public function index (){

$this -> load-> model (‘user_model‘ ) ;
//        $this->load->model(‘user_model‘,‘user_model‘);//加载模型

$accountList = $this-> user_model ->user_list () ;//调用模型方法

$data [ ‘user_list‘] = $accountList ;//设置视图数据

$this -> load-> view (‘user/user_list‘ , $data) ; //引导到视图
    }

}


class User_model extends CI_Model
{

function __construct ()
    {
        $this -> load-> database (); 
    }

public  function  user_list ()
     {
          $query =  $this-> db ->query ( "SELECT * FROM dt_account limit 0,30" ); 
          $accountArray = $query-> result (); 
         return $accountArray ;
     }
}


用户列表

<table>
    <tr><td>用户id </td><td> 用户名</td><td> 密码 </td></tr>
    <?php
    foreach
( $user_list as $user )
    {
        echo ‘<tr><td>‘ . $user-> id .‘</td>‘ ;
        echo ‘<td>‘. $user ->userName . ‘</td><td>‘. $user ->passWord . ‘</td>‘; 
        echo ‘</tr>‘; 
    }

?>
</table>

时间: 2024-08-28 21:58:35

php:ci学习笔记1的相关文章

CI 学习笔记、记录

[ci框架]ci框架目录结构分析 分类: [CodeIgniter深入研究]2013-05-09 00:24 7420人阅读 评论(5) 收藏 举报 [php] view plaincopy myshop |-----system                框架程序目录 |-----core          框架的核心程序 |-----CodeIgniter.php   引导性文件 |-----Common.php    加载基类库的公共函数 |-----Controller.php   

《R语言实战》学习笔记seventh

由于在准备软考中级数据库系统工程师外加巩固SQL Server 2012,所以拖了好久一直没继续学R 下去 所以今天重开R 的战事 这次是关于基本统计分析的内容,即关于用于生成基本的描述性统计量和推断统计量的R 函数 首先,将着眼于定量变量的位置和尺度的衡量方式 然后将是生成类别型变量的频数表和列联表的方法(以及连带的卡方检验) 接下来将考察连续型和有序型变量相关系数的多种形式 最后转而通过参数检验(t检验)和非参数检验(Mann-Whitney U检验.Kruskal-Wallis检验)方法研

python数据分析入门学习笔记儿

学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主粗心大意,有什么不对的地方欢迎指正~还有许多尚待完善的地方,待我一边学习一边完善~ 前言:各种和数据分析相关python库的介绍(前言1~4摘抄自<利用python进行数据分析>) 1.Numpy: Numpy是python科学计算的基础包,它提供以下功能(不限于此): (1)快速高效的多维数组对象naarray (2)用于对数组执行元素级计算以及直接对数组执行数学运算的函数 (3)用于读写硬盘

C++Primer第5版学习笔记(一)

C++Primer第5版学习笔记(一) 第一.二章的重难点内容 本篇文章主要记录了我在学习C++Primer(第5版,中文版)中遇到的重难点及其分析.因为第一.二章比较简单,因此这里合并这两章我遇到的问题.        第一章 开始 这一章在第一部分之前,是一个helloworld式的章节,包含基本的函数,io流以及类的介绍. 知识点1:P19,1.5,文件重定向 可以在windows下的cmd中或者mac,linux系统的终端窗口中用输入命令的形式执行程序并使它从一个文件中读入数据,再把标准

Spark GraphX学习笔记

概述 GraphX是 Spark中用于图(如Web-Graphs and Social Networks)和图并行计算(如 PageRank and Collaborative Filtering)的API,可以认为是GraphLab(C++)和Pregel(C++)在Spark(Scala)上的重写及优化,跟其他分布式 图计算框架相比,GraphX最大的贡献是,在Spark之上提供一站式数据解决方案,可以方便且高效地完成图计算的一整套流水作业. Graphx是Spark生态中的非常重要的组件,

正则表达式学习笔记---揭开正则表达式的神秘面纱

正则表达式学习笔记 如果我们问那些UNIX系统的爱好者他们最喜欢什么,答案除了稳定的系统和可以远程启动之外,十有八九的人会提到正则表达式:如果我们再问他们最头痛的是什么,可能除了复杂的进程控制和安装过程之外,还会是正则表达式.那么正则表达式到底是什么?如何才能真正的掌握正则表达式并正确的加以灵活运用?本文将就此展开介绍,希望能够对那些渴望了解和掌握正则表达式的读者有所助益. 入门简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.我们可以在几乎所有的基于UNIX系统的工具中找到

C++学习笔记7

1.  基于 const的重载 为了解决这个问题,我们必须定义两个display 操作:一个是const,另一个不是const.基于成员函数是否为const,可以重载一个成员函数: 同样地,基于一个指针形参是否指向const(第7.8.4 节),可以重载一个函数.const对象只能使用const 成员. 非const 对象可以使用任一成员,但非const 版本是一个更好的匹配. 在此,我们将定义一个名为do_display 的private 成员来打印Screen. 每个display 操作都将

BZOJ 2038: [2009国家集训队]小Z的袜子(hose)【莫队算法裸题&amp;&amp;学习笔记】

2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 9894  Solved: 4561[Submit][Status][Discuss] Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿.终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两

学习笔记 - 深究Bitmap压缩避免OOM的核心inSampleSize的最佳取值

/** * 测试代码,通过在SDCard根目录放置几种不同大小的图片, 来自动测试压缩方式是否有效同时看是否会内存不够. * * @since * By:AsionTang * At:2014年3月20日 * */ public static final void test() { //常用照片分辨率 final int[][] list = new int[][] { { 15000, 13600 }, { 14000, 12600 }, { 13000, 11600 }, { 12000,