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= ...
随机推荐
- 虚拟机设置固定ip可以使shell远程连接到服务器
配置vim /etc/sysconfig/network-scripts/ifcfg-ens33 IPADDR = 你的本机ip 192.168.1. 的范围内 NETMASK = 255.255.2 ...
- vue命令行错误处理
全局安装vue/cli时:npm install -g @vue/cli (1)Error: EACCES: permission denied, access '/usr/local/lib/nod ...
- python-布尔表达式
1.布尔类型(bool): 1.只有两种情况 真/假 (True / False) 2. print(type(False)) # <class 'bool'> type() ...
- tomcat部署jfinal项目
1:创建一个目录: /var/www 2:为将要部署的项目创建一个目录, /var/www/my_project 3:将项目打成 war 包, 然后解压到 /var/www/my_project ...
- 最大熵模型(MEM)
1. 最大熵原理 最大熵Max Entropy原理:学习概率模型时,在所有可能的概率模型(即概率分布)中,熵最大的模型是最好的模型. 通常还有其他已知条件来确定概率模型的集合,因此最大熵原理为:在满足 ...
- postman的几个问题
最近使用postman写了几个web接口测试用例,工具使用比较简单,大概步骤如下: 1.new collections——>建文件夹,类似建一个测试合集,用于方便整理,例如可以把同一个接口各种参 ...
- golang获取u盘序列号(通过读取注册表实现)
仅供参考 package main import ( "fmt" "log" "os" "strconv" " ...
- 算法(第四版)C# 习题题解——2.4
写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 查找更方便的版本见:https ...
- 基于CentOS安装FTP服务器
操作系统环境: CentOS Linux release 7.4.1708 (Core) 使用yum安装ftp服务: yum install -y vsftpd 添加系统用户作为登录ftp服务器并修改 ...
- VC++ 实现程序重启
转载:https://blog.csdn.net/what951006/article/details/72729448 一.创建一个Win32项目 二.窗口处理函数中,Create窗口时创建一个按钮 ...