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 相关文章推荐
Mysql的常用命令
Oct 09 PHP
PHP 全角转半角实现代码
May 16 PHP
队列在编程中的实际应用(php)
Sep 04 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
php警告Creating default object from empty value 问题的解决方法
Apr 02 PHP
50个PHP程序性能优化的方法
Jun 02 PHP
PHP常见数组函数用法小结
Mar 21 PHP
PHP magento后台无法登录问题解决方法
Nov 24 PHP
php读取和保存base64编码的图片内容
Apr 22 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
Aug 17 PHP
Laravel路由研究之domain解决多域名问题的方法示例
Apr 04 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
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
php中执行系统命令的方法
2015/03/21 PHP
PHP中使用BigMap实例
2015/03/30 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
javascript的对话框详解与参数
2007/03/08 Javascript
JavaScript 不只是脚本
2007/05/30 Javascript
JQUERY 浏览器判断实现函数
2009/08/20 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
Sortable.js拖拽排序使用方法解析
2016/11/04 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
jQuery实现动态加载select下拉列表项功能示例
2018/05/31 jQuery
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
js使用formData实现批量上传
2020/03/27 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
vue不操作dom实现图片轮播的示例代码
2019/12/18 Javascript
50行Python代码实现人脸检测功能
2018/01/23 Python
django的model操作汇整详解
2019/07/26 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
行政副总岗位职责
2014/02/23 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书
云冈石窟导游词
2015/02/04 职场文书
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python
python实现商品进销存管理系统
2022/05/30 Python