CI框架入门示例之数据库取数据完整实现方法


Posted in PHP onNovember 05, 2014

本文实例讲述了CI框架入门示例之数据库取数据完整实现方法。是写给初学者看的,这是最简单可以调通的例子。分享给大家供大家参考。具体实现方法如下:

1.下载CI框架

2.配置

database.php配置:

为数据库服务器设置 connection 参数:

$db['default']['hostname'] = "your-db-host";  

$db['default']['username'] = "your-username";  

$db['default']['password'] = "your-password";  

$db['default']['database'] = "your-db-name";  

$db['default']['dbdriver'] = "mysql";

3.建表
CREATE TABLE IF NOT EXISTS `users` (  

  `id` INT(8) NOT NULL AUTO_INCREMENT,  

  `name` VARCHAR(30) CHARACTER SET utf8 DEFAULT NULL,  

  `age` VARCHAR(3) CHARACTER SET utf8 DEFAULT NULL,  

  `sex` VARCHAR(2) CHARACTER SET utf8 DEFAULT NULL,  

  PRIMARY KEY  (`id`)  

) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_estonian_ci AUTO_INCREMENT=14 ;

自己随便填几条数据

4.实现MVC
1)实现M--取数据
CI的models下新建一个文件mtest.php

<?php  

class Mtest extends CI_Model{  

    function Mtest(){  

        parent::__construct();  

    }  

        function get_last_ten_entries()  

    {         

        $this->load->database();  

          mysql_query("SET NAMES GBK"); //防止中文乱码  

        $query = $this->db->get('users', 10);  

        return $query->result();  

    }  

}  

?>

说明:

parent::__construct();不可少
$this->load->database();一定不能少不然会报错
也可以实现“自动连接” 功能,将在每个一页面加载时被自动实例化数据库类。要启用“自动连接”,可在如下文件中的 library 数组里添加 database:
application/config/autoload.php
不然就要像这里一样写在每个页面上。
也可以用

$query = $this->db->query('select * from users');

这样写入自己的SQL
 
2)实现C--决定取那些数据
CI的controllers下新建一个文件test.php
<?php  

class Test extends CI_Controller {  

  function Test(){  

    parent::__construct();  

  }  

  function index(){  

    $this->load->helper('form');  

    $data['title'] = "首页";  

    $data['headline'] = "录入用户信息";  

    //多维数组  

    $data['todo_list'] = array('Clean House', 'Call Mom', 'Run Errands');  

    //$this->load->vars($data);  

    $this->load->model('mtest');  

    $data['query1'] = $this->mtest->get_last_ten_entries();  

    $this->load->view('users',$data);  

    //$this->load->view('newfile');  

    //$this->load->view('a/newfile');  

}  

}  

?>

调用model:
$this->load->model('mtest');

把model装载到数组里:
$data['query1'] = $this->mtest->get_last_ten_entries();

把数组转载到页面上:
$this->load->view('users',$data);

2)实现V--页面显示
CI的views下新建一个文件user.php

<head>  

<title><? echo $title;?></title>  

</head>  

<body>  

<ul>  

<?php foreach($todo_list as $item):?>  

<li><?php echo $item;?></li>  

<?php endforeach;?>  

</ul>  

<ul>  

<? echo count($query1);  

foreach ($query1 as $v1) {  

    foreach ($v1 as $v2) {  

        echo "$v2\n";  

    }  

}  

for ($row=0;$row<count($query1);$row++) {  

    echo $query1[$row]->name."</br>";  

}  

?>  

  

<?php foreach($query1 as $v):?>  

<li><?php echo $v->name;?></li>  

<?php endforeach;?>  

</ul>  

</h2><?php echo $headline; ?></h2>  

</body>  

</html>

说明:可以用For和Foreach多种方法找出你要的数据!
说明:如果是整个页面乱码,网页头部大概是这样的.
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

如果你没有使用CI连接数据库,在数据库连接部分加入下面的代码.
mysql_query("SET NAMES GBK"); //防止中文乱码

mysql_query("set names utf8;");//在mysql_select_db("");后加入.  

//防止中文乱码 要看你的数据库字符集

CI  config下的database.php文件
$db['default']['char_set'] = 'utf8';  //utf8.  数据库字符集也是utf8  

$db['default']['dbcollat'] = 'utf8_general_ci';

希望本文所述对大家CI框架程序设计的学习有所帮助。

PHP 相关文章推荐
如何分别全角和半角以避免乱码
Oct 09 PHP
SSI指令
Nov 25 PHP
第六章 php目录与文件操作
Dec 30 PHP
php中的一些数组排序方法分享
Jul 20 PHP
php随机输出名人名言的代码
Oct 07 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
destoon设置自定义搜索的方法
Jun 21 PHP
php+ajax实现无刷新分页的方法
Nov 04 PHP
php使用ereg验证文件上传的方法
Dec 16 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
Sep 30 PHP
PHP实现通过strace定位故障原因的方法
Apr 29 PHP
CI框架验证码CAPTCHA辅助函数用法实例
Nov 05 #PHP
PHP操作MySQL事务实例
Nov 05 #PHP
PHP通过插入mysql数据来实现多机互锁实例
Nov 05 #PHP
PHP中使用虚代理实现延迟加载技术
Nov 05 #PHP
PHP实现获取域名的方法小结
Nov 05 #PHP
php调用shell的方法
Nov 05 #PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
Nov 05 #PHP
You might like
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
前端必学之PHP语法基础
2016/01/01 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
PHP数组内存利用率低和弱类型详细解读
2017/08/10 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
2019/10/30 PHP
JavaScript 10件让人费解的事情
2010/02/15 Javascript
JQuery 选项卡效果(JS与HTML的分离)
2010/04/01 Javascript
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
js 实现css风格选择器(压缩后2KB)
2012/01/12 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
javascript类型转换示例
2014/04/29 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
浅谈mint-ui 填坑之路
2017/11/06 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
js jquery 获取某一元素到浏览器顶端的距离实现方法
2018/09/05 jQuery
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
[04:03][TI9趣味短片] 小鸽子茶话会
2019/08/20 DOTA
学生信息管理系统python版
2018/10/17 Python
Python Web版语音合成实例详解
2019/07/16 Python
Python 线程池用法简单示例
2019/10/02 Python
浅谈matplotlib中FigureCanvasXAgg的用法
2020/06/16 Python
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
开放系统互连参考模型
2016/06/29 面试题
2015年酒店年度工作总结
2015/05/23 职场文书
2015年生产部工作总结范文
2015/05/25 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
关于车尾的标语大全
2015/08/11 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
长辈生日祝福语大全(72句)
2019/08/09 职场文书
诗词赏析-(浣溪沙)
2019/08/13 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js