zoukankan      html  css  js  c++  java
  • 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 ;
    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
     
    原文出处:
  • 相关阅读:
    解决了一个java服务线程退出的问题
    怎么实现软件注册码功能?
    数据挖掘学习笔记
    IP网段拆分出多个IP
    Java list分割批量处理
    pyecharts import Bar后找不到Bar,或报错AttributeError: 'str' object has no attribute 'get'
    SqlServer 按日、周、月、季、年统计SQL语句
    Redis知识点
    js对类似Excel表头数据排序:A1,A10,A11,B1
    Elasticsearch面试题
  • 原文地址:https://www.cnblogs.com/zhongbin/p/2886484.html
Copyright © 2011-2022 走看看