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 相关文章推荐
NOT NULL 和NULL
Jan 15 PHP
flash用php连接数据库的代码
Apr 21 PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 PHP
PHP static局部静态变量和全局静态变量总结
Mar 02 PHP
php保存二进制原始数据为图片的程序代码
Oct 14 PHP
ThinkPHP内置jsonRPC的缺陷分析
Dec 18 PHP
Laravel 5.0 发布 新版本特性详解
Feb 10 PHP
php从数据库查询结果生成树形列表的方法
Apr 17 PHP
php中二维数组排序问题方法详解
Aug 28 PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
Oct 24 PHP
PHP DB 数据库连接类定义与用法示例
Mar 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的ob_start();控制您的浏览器cache!
2006/11/25 PHP
PHP 上传文件大小限制
2009/07/05 PHP
php xml 入门学习资料
2011/01/01 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
PHP 正则表达式常用函数
2014/08/17 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
jquery.cookie.js用法实例详解
2015/12/25 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
js实现简单分页导航栏效果
2019/06/28 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
Python中的CURL PycURL使用例子
2014/06/01 Python
开始着手第一个Django项目
2015/07/15 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
django的403/404/500错误自定义页面的配置方式
2020/05/21 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
2020/07/14 Python
Python监听键盘和鼠标事件的示例代码
2020/11/18 Python
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
餐厅经理岗位职责范本
2014/02/17 职场文书
优秀班组长事迹
2014/05/31 职场文书
大学新闻系求职信
2014/06/03 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
Python中递归以及递归遍历目录详解
2021/10/24 Python