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) 编辑 收藏 举报