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 相关文章推荐
php项目打包方法
Feb 18 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
yii框架通过控制台命令创建定时任务示例
Apr 30 PHP
PHP独立Session数据库存储操作类分享
Jun 11 PHP
跟我学Laravel之路由
Oct 15 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
Aug 29 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
Apr 07 PHP
自制PHP框架之模型与数据库
May 07 PHP
php多文件打包下载的实例代码
Jul 12 PHP
php实现二叉树中和为某一值的路径方法
Oct 14 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 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连接mssql的一些相关经验及注意事项
2013/02/05 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
深入理解PHP原理之执行周期分析
2016/06/01 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
2017/02/06 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
JS 数字转换研究总结
2013/12/26 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
js判断鼠标位置是否在某个div中的方法
2016/02/26 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
[47:21]Liquid vs TNC Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
pygame实现飞机大战
2020/03/11 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
2020/03/30 Python
Python通过Pillow实现图片对比
2020/04/29 Python
Python基于os.environ从windows获取环境变量
2020/06/09 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
英国领先的名牌服装折扣零售商:Brown Bag Clothing
2019/01/08 全球购物
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
微软巴西官方网站:Microsoft Brasil
2019/09/26 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
建筑自我鉴定
2013/10/19 职场文书
致跳远运动员广播稿
2014/02/11 职场文书
中学校庆方案
2014/03/17 职场文书
一岗双责责任书
2014/04/15 职场文书
教师年度考核评语
2014/04/28 职场文书
机器人瓦力观后感
2015/06/12 职场文书
pytorch中的model=model.to(device)使用说明
2021/05/24 Python