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 = '赵敏' )
}
}
php(三)使用thinkphp操作数据库的更多相关文章
- FastAPI 学习之路(三十三)操作数据库
通过创建pydantic模型进行验证提交数据 from pydantic import BaseModel class UserBase(BaseModel): email: str class Us ...
- thinkphp操作数据库
1.实现or操作: $where=array( 'city'=>array('like',array('%'.$_GET['city'].'%')); 'hangye'=>array('l ...
- php三种方式操作mysql数据库
php可以通过三种方式操作数据库,分别用mysql扩展库,mysqli扩展库,和mysqli的预处理模式分别举案例加以说明 1.通过mysql方式操作数据库 工具类核心代码: <?php cla ...
- 39.C语言操作数据库
一.准备工作: sqlite3工具集:链接:https://pan.baidu.com/s/1mjufXZa 密码:2ui7 安装步骤: 打开如下文件夹,找到sqlite3.dll,并放入系统目录 2 ...
- ThinkPHP之数据库操作
Model文件位置 ThinkPHP使用的是MVC架构,所以我们我们在操作数据库时,首先需要创建自己的Model类. 在每个模块下有个Model文件夹,我们可以将Model类放置在该文件夹下.如果多个 ...
- thinkphp 对数据库的操作
查看ThinkPHP完全开发手册3.1 首先编辑配置文件 thinkphp这个数据库就不乱改了 昨天新建了一个 confluence(utf8)数据库 所以就用它学习一下吧,因为就只建立了一个数据库, ...
- JavaEE系列之(三)JDBC操作MySQL数据库
一.JDBC简介 JDBC(Java Data Base Connectivity)java数据库连接 SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库 ...
- JDBC操作数据库的三种方式比较
JDBC(java Database Connectivity)java数据库连接,是一种用于执行上sql语句的javaAPI,可以为多种关系型数据库提供统一访问接口.我们项目中经常用到的MySQL. ...
- SQL Server -- 回忆笔记(三):ADO.NET之C#操作数据库
SQL Server知识点回忆篇(三):ADO.NET之C#操作数据库 1.连接数据库 (1)创建连接字符串: 使用windows身份验证时的连接字符串: private string conStr= ...
随机推荐
- Vuex 2.0 深入简出
最近面试充斥了流行框架Vue的各种问题,其中Vuex的使用就相当有吸引力.下面我就将自己深入简出的心得记录如下: 1.在vue-init webpack project (创建vue项目) 2.src ...
- P1186 玛丽卡
题目描述 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们知道从一个城市到另一个城 ...
- tcp ip 协议安全
ARP(地址解析协议) 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.主机发送信息时将包含目标IP地址的ARP请求 ...
- 高版本mysql8.0解压版安装步骤
解压版安装操作官网下载: mysql-installer-community-8.0.12.0.msi如上操作: http://www.cnblogs.com/elfin/p/9429877.html ...
- 这个表明将http协议转成websocket协议
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- lnmp mysql远程访问设置
一:iptables 设置开放3306访问 iptables -L -n --line-numbers 1,删除DROP 3306 iptables -D INPUT 5[序列号] 2,添加 ACCE ...
- 利用python抓取页面数据
1.首先是安装python(注意python3.X和python2.X是不兼容的,我们最好用python3.X) 安装方法:安装python 2.安装成功后,再进行我们需要的插件安装.(这里我们需要用 ...
- CEF C++调用前端js方法展示传递过来的图片数据
转载:https://blog.csdn.net/lengyuezuixue/article/details/79769103 在项目开发过程中遇到一个需求,通过C++调用js方法传参给前端显示图片, ...
- 2018年—2019年第二学期第四周C#学习个人总结
第五章面向对象高级包括:5.1类的继承中有5.1.1继承的概念:一是在现实生活中,继承一般指的是子女继承父辈的财产;在C#,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类, ...
- 纯CSS3完成选项卡,不要js完成的选项卡
我爱撸码,撸码使我感到快乐!大家好,我是Counter.今天就来敲一敲,选项卡,注意哦,不是一般利用js完成的选项卡,今天是纯用HTML和CSS来完成的,这怎么可能?那你不用js的点击事件,怎么处理? ...