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 相关文章推荐
example2.php
Oct 09 PHP
从MySQL数据库表中取出随机数据的代码
Sep 05 PHP
DISCUZ 论坛管理员密码忘记的解决方法
May 14 PHP
PHP 查找字符串常用函数介绍
Jun 07 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
PHP计算指定日期所在周的开始和结束日期的方法
Mar 24 PHP
PHP 反射(Reflection)使用实例
May 12 PHP
PHP中error_reporting()用法详解
Aug 31 PHP
浅谈PHP中的数据传输CURL
Sep 06 PHP
简单谈谈PHP中的Reload操作
Dec 12 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
May 26 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 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使用memcache缓存技术提高响应速度的方法
2014/12/26 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
PHP控制前台弹出对话框的实现方法
2016/08/21 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
2017/08/10 PHP
PHP实现的策略模式示例
2019/03/20 PHP
JS跨域代码片段
2012/08/30 Javascript
自动最大化窗口的Javascript代码
2013/05/22 Javascript
javascript使用onclick事件改变选中行的颜色
2013/12/30 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
Jquery Easyui进度条组件Progress使用详解(8)
2020/03/26 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
详解JavaScript 的变量
2019/03/08 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
js实现课堂随机点名系统
2019/11/21 Javascript
[01:28:43]2014 DOTA2华西杯精英邀请赛5 24 DK VS CIS
2014/05/25 DOTA
深入浅出分析Python装饰器用法
2017/07/28 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
对Python发送带header的http请求方法详解
2019/01/02 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
html5教程画矩形代码分享
2013/12/04 HTML / CSS
化工操作工岗位职责
2014/04/29 职场文书
活动总结的格式
2014/05/07 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
开网店计划分析
2019/07/30 职场文书