木心

毕竟几人真得鹿,不知终日梦为鱼

导航

php(三)使用thinkphp操作数据库

1、数据库设置

  在项目D:\workspaces\phpDemo01\helloworldProject\Common\Conf\config.php配置:

<?php
return array(
    //'配置项'=>'配置值'
    //'URL_HTML_SUFFIX'       =>  'abc',  // URL伪静态后缀设置
    
    //使得页面底部显示跟踪信息
    'SHOW_PAGE_TRACE' => true,
    
    //设置默认分组
    'DEFAULT_MODULE'        =>  'Home',  // 默认模块
    //允许访问的分组信息
    //'MODULE_ALLOW_LIST'     => array('Home','Admin'),
    
    //设置Smarty模板引起使用
    //'TMPL_ENGINE_TYPE'      =>  'Smarty',     // 默认模板引擎
    
    //为Smarty配置相关配置
   //'TMPL_ENGINE_CONFIG' => array(
        //'left_delimiter' => '<@@@',
        //'right_delimiter' => '@@@>',
   // ),
    
    /* 数据库设置 */
    'DB_TYPE'               =>  'mysql',     // 数据库类型
    'DB_HOST'               =>  'localhost', // 服务器地址
    'DB_NAME'               =>  'db_test',          // 数据库名
    'DB_USER'               =>  'root',      // 用户名
    'DB_PWD'                =>  '',          // 密码
    'DB_PORT'               =>  '3306',        // 端口
    'DB_PREFIX'             =>  't_',    // 数据库表前缀
    'DB_PARAMS'              =>  array(), // 数据库连接参数    
    'DB_DEBUG'              =>  TRUE, // 数据库调试模式 开启后可以记录SQL日志
    'DB_FIELDS_CACHE'       =>  true,        // 启用字段缓存
    'DB_CHARSET'            =>  'utf8',      // 数据库编码默认采用utf8
);

 

2、新建Controller类

  D:\workspaces\phpDemo01\helloworldProject\Home\Controller\StuController.class.php

<?php
//命名空间
namespace Home\Controller;
use Think\Controller;

class StuController extends Controller{
    //列表展示
    function showlist(){
        echo "show stuList";
        //$stu = new \Model\StuModel();
        //dump($stu);
        $obj = D('stu');   //实例化Model对象,同时操作"t_stu"数据表
                           //该方式允许我们即使不创建UserModel类,也可以操作t_stu表
        //dump($obj);
        
        $stuList = $obj -> select();
        $this -> assign("stuList", $stuList);
        $this -> display();
    }
}

 

3、模板

  D:\workspaces\phpDemo01\helloworldProject\Home\View\Stu\showlist.html

<!DOCTYPE html>
<html>
<head>
    <title>stu/showlist.html</title>
</head>
<body>
    <h2>stu/showlist.html</h2>
    <?php
        echo "<table border = 1 cellspacing = '0' cellpadding = '10'>";
        echo "<th>编号</th><th>姓名</th><th>年龄</th><th>操作</th>";
        for($i = 0; $i < count($stuList); $i++) {
            //echo "No" . $i;
            echo "<tr>";
            echo '<td>'.$stuList[$i]['id'].'</td>';
            echo '<td>'.$stuList[$i]['name'].'</td>';
            echo '<td>'.$stuList[$i]['age'].'</td>';
            echo '<td><a href = "del.php?id='.$row['id'].'">删除</a>/<a href = "update.php?id='.$row['id'].'">修改</a></td>';
            echo "</tr>";
        }
    ?>
</body>
</html>

 

4、测试

  浏览器输入:http://web.abc123.com/helloworldProject/index.php/Home/stu/showlist,结果:

5、thinkphp数据查询总结

<?php
//命名空间
namespace Home\Controller;
use Think\Controller;

class StuController extends Controller{
    //列表展示
    // function showlist(){
    //     echo "show stuList";
    //     //$stu = new \Model\StuModel();
    //     //dump($stu);
    //     $obj = D('stu');   //实例化Model对象,同时操作"t_stu"数据表
    //                        //该方式允许我们即使不创建UserModel类,也可以操作t_stu表
    //     //dump($obj);
        
    //     $stuList = $obj -> select();
    //     $this -> assign("stuList", $stuList);
    //     $this -> display();
    // }

    // function showlist(){
    //     echo "StuController getStuById";
        
    //     $obj = D('stu');   //实例化Model对象,同时操作"t_stu"数据表
    //                        //该方式允许我们即使不创建UserModel类,也可以操作t_stu表
        
    //     $stuList = $obj -> select(1);
    //     $this -> assign("stuList", $stuList);
    //     $this -> display();
    // }

    // function showlist(){
    //     echo "StuController getStuById";
        
    //     $obj = D('stu');   //实例化Model对象,同时操作"t_stu"数据表
    //                        //该方式允许我们即使不创建UserModel类,也可以操作t_stu表
        
    //     $stuList = $obj -> select("1,2");
    //     $this -> assign("stuList", $stuList);
    //     $this -> display();
    // }

    function showlist(){
        echo "StuController getStuByName";
        
        $obj = D('stu');   //实例化Model对象,同时操作"t_stu"数据表
                           //该方式允许我们即使不创建UserModel类,也可以操作t_stu表
        $obj -> where("name like '%s%'");
        $obj -> limit(0,2);
        $obj -> field('id,name,age');
        $obj -> order('id desc');

        // SELECT `age`,count(*) FROM `t_stu` GROUP BY age
        //$obj -> field('age,count(*)');
        //$obj -> group("age");

        $obj -> having('age >= 10');
        // SELECT `id`,`name`,`age` FROM `t_stu` WHERE ( name like '%s%' ) HAVING age >= 10 ORDER BY id desc LIMIT 0,2 

        $stuList = $obj -> select();
        $this -> assign("stuList", $stuList);
        $this -> display();
    }
}

 

6、添加操作

<?php
//命名空间
namespace Home\Controller;
use Think\Controller;

class StuController extends Controller{
    // function addStu() {
    //     echo "add stu";

    //     $array = array(
    //         'name' => 赵敏,
    //         'age' => 25
    //     );

    //     $obj = D('stu');
    //     $id = $obj -> add($array);//主键返回
    //     echo $id;
    //     // INSERT INTO `t_stu` (`name`,`age`) VALUES ('赵敏','25') 
    // }

    function addStu() {
        echo "add stu";

        $obj = D('stu');
        $obj -> name = '周芷若';
        $obj -> age = 20;

        $id = $obj -> add();//主键返回
        echo $id;
        // INSERT INTO `t_stu` (`name`,`age`) VALUES ('周芷若','20') 
    }
}

 

7、修改操作

<?php
//命名空间
namespace Home\Controller;
use Think\Controller;

class StuController extends Controller{function updateStu() {
        echo "update stu";

        // 数据修改必须设置条件:where()或主键id值,二选一即可
        $obj = D('stu');
        $obj -> age = 20;

        $obj -> where("name = '赵敏'");
        $result = $obj -> save();//save()方法返回受影响的记录条数
        echo $result;
        // UPDATE `t_stu` SET `age`='20' WHERE ( name = '赵敏' )
    }
}

 

posted on 2019-04-17 00:18  wenbin_ouyang  阅读(534)  评论(0编辑  收藏  举报