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自动选择 连接本地还是远程数据库
Dec 02 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
May 02 PHP
php urlencode()与urldecode()函数字符编码原理详解
Dec 06 PHP
PHP求小于1000的所有水仙花数的代码
Jan 10 PHP
php 批量生成html,txt文件的实现代码
Jun 26 PHP
thinkphp数据查询和遍历数组实例
Nov 28 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
Nov 29 PHP
一款简单实用的php操作mysql数据库类
Dec 08 PHP
php执行多个存储过程的方法【基于thinkPHP】
Nov 08 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 PHP
PHP设计模式之单例模式原理与实现方法分析
Apr 25 PHP
PHP标准库(PHP SPL)详解
Mar 16 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调用Java对象的方法
2006/10/09 PHP
基于mysql的论坛(2)
2006/10/09 PHP
PHP 简单日历实现代码
2009/10/28 PHP
PHP删除非空目录的函数代码小结
2013/02/28 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
php随机显示图片的简单示例
2014/02/15 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
使用jquery为table动态添加行的实现代码
2011/03/30 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
jQuery简单实现隐藏以及显示特效
2015/02/26 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
JS截取字符串实例详解
2015/11/24 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
详解React Native 采用Fetch方式发送跨域POST请求
2017/11/15 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
Vue.js中的computed工作原理
2018/03/22 Javascript
node.js学习笔记之koa框架和简单爬虫练习
2018/12/13 Javascript
js中let能否完全替代IIFE
2019/06/15 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
[39:08]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第一场 12.12
2020/12/16 DOTA
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
python导入时小括号大作用
2017/01/10 Python
python 爬取学信网登录页面的例子
2019/08/13 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
一套SQL笔试题
2016/08/14 面试题
教育实习生的自我评价分享
2013/11/21 职场文书
工程质量承诺书范文
2014/03/27 职场文书
个人工作总结范文2014
2014/11/07 职场文书
深入理解go slice结构
2021/09/15 Golang