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 = \'赵敏\' ) } }