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 相关文章推荐
珊瑚虫IP库浅析
Feb 15 PHP
PHP 递归效率分析
Nov 24 PHP
PHP学习笔记之二
Jan 17 PHP
php中mysql模块部分功能的简单封装
Sep 30 PHP
PHP创建桌面快捷方式的实例代码
Feb 17 PHP
destoon文章模块调用企业会员资料的方法
Aug 22 PHP
php实现用于计算执行时间的类实例
Apr 18 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
Jun 29 PHP
PHP异常处理定义与使用方法分析
Jul 25 PHP
PHP常用字符串函数小结(推荐)
Aug 05 PHP
laravel 实现登陆后返回登陆前的页面方法
Oct 03 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 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安全配置
2006/12/06 PHP
CodeIgniter php mvc框架 中国网站
2008/05/26 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
2014/11/20 PHP
如何使用GDB调试PHP程序
2015/12/08 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
通过JavaScript控制字体大小的代码
2011/10/04 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
jQuery实现对象转为url参数的方法
2017/01/11 Javascript
js实现导航栏中英文切换效果
2017/01/16 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
浅谈Redux中间件的实践
2018/07/27 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
vue vant Area组件使用详解
2019/12/09 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
Vue 如何使用props、emit实现自定义双向绑定的实现
2020/06/05 Javascript
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
使用Python3中的gettext模块翻译Python源码以支持多语言
2015/03/31 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
Python进程间通信之共享内存详解
2017/10/30 Python
Python实现利用163邮箱远程关电脑脚本
2018/02/22 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
Python实现线性插值和三次样条插值的示例代码
2019/11/13 Python
基于pandas中expand的作用详解
2019/12/17 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
销售人员个人求职信
2013/09/26 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
IT工程师岗位职责
2014/07/04 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书