您的位置:首页 > 编程语言 > PHP开发

ThinkPHP学习教程-增删改查操作[附源码]

2013-01-31 10:17 225 查看
项目测试环境:

Window XP sp3
WAMP(httpd-2.2.19-win32-x86-no_ssl.msi、mysql-5.1.57-win32.msi、php-5.2.17-Win32-VC6-x86.zip)
ThinkPHP_3.0_Full.7z

Eclipse PHP Studio (EPP) 中文版

[align=left]使用ThinkPHP创建应用的一般开发流程是:[/align]

创建数据库和数据表;(没有数据库操作可略过)

项目命名并创建项目入口文件;

完成项目配置;(无需额外配置可以忽略)

创建控制器类;

创建模型类;(如果只是简单的模型类可以不必创建)

创建模板文件;

运行和调试。

[align=left]1、创建数据库和数据表[/align]
数据库名称think_example:
CREATE TABLE `think_blog` (
`id` int(11) unsigned NOT NULL auto_increment,
`title` varchar(32) NOT NULL default '',
`content` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
2、创建项目
在apache DocumentRoot 所在目录下创建应用(注:这里根据测试环境会有不同 例如我的D:\dev\apache\htdocs\),项目名thinkphpLearing,同时将ThinkPHP核心拷贝到thinkphpLearing下,接着新建入口文件index.php
[align=left]<?php[/align]
[align=left]/*[/align]
[align=left] * Created on 2013-1-30[/align]
[align=left] *[/align]
[align=left] * email study@hacktea8.com[/align]
[align=left] * [/align]
[align=left] */[/align]
[align=left] // 定义ThinkPHP框架路徂[/align]
[align=left]define('THINK_PATH', './ThinkPHP/');[/align]
[align=left]//定义项目名称和路徂[/align]
[align=left]define('APP_NAME', 'thinkphpLearing');[/align]
[align=left]define('APP_PATH', '.');[/align]
[align=left]// 加载框架入口文件[/align]
[align=left]require(THINK_PATH."/ThinkPHP.php");[/align]
[align=left]//实例化一个网站应用实例[/align]
[align=left]App::run();[/align]
?>

访问成功后,看到成功页面:

3、项目配置
在自动生成的目录下面,已经创建了一个空的项目配置文件,.Conf/config.php
打开增加项目配置信息:
[align=left]<?php[/align]
[align=left]return array([/align]
[align=left] //'配置项'=>'配置值'[/align]
[align=left] 'APP_DEBUG' => true, // 开启调试模式 [/align]
[align=left] 'DB_TYPE'=> 'mysql', // 数据库类型 [/align]
[align=left] 'DB_HOST'=> 'localhost', // 数据库朋务器地址 [/align]
[align=left] 'DB_NAME'=>'think_example', // 数据库名称 [/align]
[align=left] 'DB_USER'=>'root', // 数据库用户名 [/align]
[align=left] 'DB_PWD'=>'root', // 数据库密码 [/align]
[align=left] 'DB_PORT'=>'3306', // 数据库端口 [/align]
[align=left] 'DB_PREFIX'=>'think_', // 数据表前缀 [/align]
[align=left] 'DEFAULT_THEME'=>'DEFAULT',//如果有多个模板主题的话,可以用DEFAULT_THEME 参数设置默认的模板主题名。[/align]
[align=left] 'TMPL_L_DELIM'=>'<{',//项目的标签左分隔符[/align]
[align=left] 'TMPL_R_DELIM'=>'}>',//项目的标签右分隔符[/align]
[align=left] [/align]
[align=left]);[/align]
?>
4、增加业务逻辑(增加为例)
.Lib/Action下,自动生成的IndexAction.class.php(控制器),注释(或者删除)掉当前的index方法,添加新的insert、delete、update、query、index方法:
[align=left]<?php[/align]
[align=left]// 本类由系统自动生成,仅供测试用途[/align]
[align=left]class IndexAction extends Action {[/align]
[align=left] public function index(){[/align]
[align=left] //默认界面[查询界面][/align]
[align=left] $Mblog = M('blog'); // 实例化模型类 [/align]
[align=left] //$Mblog->Create();[/align]
[align=left] $list = $Mblog->select(); // 查询数据 [/align]
[align=left] $this->assign('list', $list); // 模板发量赋值 [/align]
[align=left]// echo "<pre>";[/align]
[align=left]// var_dump($list);exit;[/align]
[align=left] $this->display('index'); // 输出模板 [/align]
[align=left] exit;[/align]
[align=left] }[/align]
[align=left] public function insert(){[/align]
[align=left] //添加的动作[/align]
[align=left] $Mblog=M('blog');//实例化模型类[/align]
[align=left] //$data=array('title'=>$_POST['title'],'content'=>$_POST['content']);[/align]
[align=left] $Mblog->create();[/align]
[align=left] //var_dump($data);exit;[/align]
[align=left] $insertid=$Mblog->add();[/align]
[align=left] $this->assign('lastid',$insertid);[/align]
[align=left] //var_dump($insertid);exit;[/align]
[align=left] $this->redirect('index');//成功后重定向到index页面[/align]
[align=left] exit;[/align]
[align=left] }[/align]
[align=left] public function delete(){[/align]
[align=left] //删除的动作[/align]
[align=left] $Mblog=M('blog');//实例化模型类[/align]
[align=left] $where='id='.$_GET['id'];[/align]
[align=left] $Mblog->where($where)->delete();[/align]
[align=left] $this->redirect('index');//操作成功重定向到index模板[/align]
[align=left] exit;[/align]
[align=left] }[/align]
[align=left] public function edite(){[/align]
[align=left] //更新的界面[/align]
[align=left] $where='id='.$_GET['id'];[/align]
[align=left] $Mblog=M('blog');[/align]
[align=left] $list=$Mblog->where($where)->select();[/align]
[align=left]// echo "<pre>";[/align]
[align=left]// var_dump($list);exit;[/align]
[align=left] $this->assign('info',$list);[/align]
[align=left] $this->display();[/align]
[align=left] exit;[/align]
[align=left] }[/align]
[align=left] public function update(){[/align]
[align=left] //更新的动作[/align]
[align=left] $Mblog=M('blog');[/align]
[align=left] $Mblog->create();[/align]
[align=left] $status=$Mblog->save();[/align]
[align=left] if($status>0){[/align]
[align=left] //更新成功[/align]
[align=left] $this->redirect('index');[/align]
[align=left] }else{[/align]
[align=left] //更新失败[/align]
[align=left] $this->redirect('edite');[/align]
[align=left] }[/align]
[align=left] exit;[/align]
[align=left] }[/align]
}
5、增加业务逻辑对应模板

6、测试例子是否正常
经测试都正常[添加、删除、更新操作]

Tips:如果在测试过程中出现错误,请删除.Runtime/~runtime.php文件在测试
【源码】
thinkphpLearing

原文出处:
http://www.hacktea8.com/read.php?tid-1545-ds-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: