ThinkPHP学习教程-增删改查操作[附源码]
项目测试环境:
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) 中文版
使用ThinkPHP创建应用的一般开发流程是:
- 创建数据库和数据表;(没有数据库操作可略过)
- 项目命名并创建项目入口文件;
- 完成项目配置;(无需额外配置可以忽略)
- 创建控制器类;
- 创建模型类;(如果只是简单的模型类可以不必创建)
- 创建模板文件;
- 运行和调试。
1、创建数据库和数据表
数据库名称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 ;
`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
<?php
/*
* Created on 2013-1-30
*
* email study@hacktea8.com
*
*/
// 定义ThinkPHP框架路徂
define('THINK_PATH', './ThinkPHP/');
//定义项目名称和路徂
define('APP_NAME', 'thinkphpLearing');
define('APP_PATH', '.');
// 加载框架入口文件
require(THINK_PATH."/ThinkPHP.php");
//实例化一个网站应用实例
App::run();
?>
访问成功后,看到成功页面:
3、项目配置
在自动生成的目录下面,已经创建了一个空的项目配置文件,.Conf/config.php
打开增加项目配置信息:
<?php
return array(
//'配置项'=>'配置值'
'APP_DEBUG' => true, // 开启调试模式
'DB_TYPE'=> 'mysql', // 数据库类型
'DB_HOST'=> 'localhost', // 数据库朋务器地址
'DB_NAME'=>'think_example', // 数据库名称
'DB_USER'=>'root', // 数据库用户名
'DB_PWD'=>'root', // 数据库密码
'DB_PORT'=>'3306', // 数据库端口
'DB_PREFIX'=>'think_', // 数据表前缀
'DEFAULT_THEME'=>'DEFAULT',//如果有多个模板主题的话,可以用DEFAULT_THEME 参数设置默认的模板主题名。
'TMPL_L_DELIM'=>'<{',//项目的标签左分隔符
'TMPL_R_DELIM'=>'}>',//项目的标签右分隔符
);
?>
4、增加业务逻辑(增加为例)
.Lib/Action下,自动生成的IndexAction.class.php(控制器),注释(或者删除)掉当前的index方法,添加新的insert、delete、update、query、index方法:
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
public function index(){
//默认界面[查询界面]
$Mblog = M('blog'); // 实例化模型类
//$Mblog->Create();
$list = $Mblog->select(); // 查询数据
$this->assign('list', $list); // 模板发量赋值
// echo "<pre>";
// var_dump($list);exit;
$this->display('index'); // 输出模板
exit;
}
public function insert(){
//添加的动作
$Mblog=M('blog');//实例化模型类
//$data=array('title'=>$_POST['title'],'content'=>$_POST['content']);
$Mblog->create();
//var_dump($data);exit;
$insertid=$Mblog->add();
$this->assign('lastid',$insertid);
//var_dump($insertid);exit;
$this->redirect('index');//成功后重定向到index页面
exit;
}
public function delete(){
//删除的动作
$Mblog=M('blog');//实例化模型类
$where='id='.$_GET['id'];
$Mblog->where($where)->delete();
$this->redirect('index');//操作成功重定向到index模板
exit;
}
public function edite(){
//更新的界面
$where='id='.$_GET['id'];
$Mblog=M('blog');
$list=$Mblog->where($where)->select();
// echo "<pre>";
// var_dump($list);exit;
$this->assign('info',$list);
$this->display();
exit;
}
public function update(){
//更新的动作
$Mblog=M('blog');
$Mblog->create();
$status=$Mblog->save();
if($status>0){
//更新成功
$this->redirect('index');
}else{
//更新失败
$this->redirect('edite');
}
exit;
}
}
5、增加业务逻辑对应模板
6、测试例子是否正常
经测试都正常[添加、删除、更新操作]
Tips:如果在测试过程中出现错误,请删除.Runtime/~runtime.php文件在测试
【源码】
thinkphpLearing
原文出处: