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操作数据库的更多相关文章

  1. FastAPI 学习之路(三十三)操作数据库

    通过创建pydantic模型进行验证提交数据 from pydantic import BaseModel class UserBase(BaseModel): email: str class Us ...

  2. thinkphp操作数据库

    1.实现or操作: $where=array( 'city'=>array('like',array('%'.$_GET['city'].'%')); 'hangye'=>array('l ...

  3. php三种方式操作mysql数据库

    php可以通过三种方式操作数据库,分别用mysql扩展库,mysqli扩展库,和mysqli的预处理模式分别举案例加以说明 1.通过mysql方式操作数据库 工具类核心代码: <?php cla ...

  4. 39.C语言操作数据库

    一.准备工作: sqlite3工具集:链接:https://pan.baidu.com/s/1mjufXZa 密码:2ui7 安装步骤: 打开如下文件夹,找到sqlite3.dll,并放入系统目录 2 ...

  5. ThinkPHP之数据库操作

    Model文件位置 ThinkPHP使用的是MVC架构,所以我们我们在操作数据库时,首先需要创建自己的Model类. 在每个模块下有个Model文件夹,我们可以将Model类放置在该文件夹下.如果多个 ...

  6. thinkphp 对数据库的操作

    查看ThinkPHP完全开发手册3.1 首先编辑配置文件 thinkphp这个数据库就不乱改了 昨天新建了一个 confluence(utf8)数据库 所以就用它学习一下吧,因为就只建立了一个数据库, ...

  7. JavaEE系列之(三)JDBC操作MySQL数据库

    一.JDBC简介        JDBC(Java Data Base Connectivity)java数据库连接        SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库 ...

  8. JDBC操作数据库的三种方式比较

    JDBC(java Database Connectivity)java数据库连接,是一种用于执行上sql语句的javaAPI,可以为多种关系型数据库提供统一访问接口.我们项目中经常用到的MySQL. ...

  9. SQL Server -- 回忆笔记(三):ADO.NET之C#操作数据库

    SQL Server知识点回忆篇(三):ADO.NET之C#操作数据库 1.连接数据库 (1)创建连接字符串: 使用windows身份验证时的连接字符串: private string conStr= ...

随机推荐

  1. ASP.NET gridview导出excel,防止繁体产生有乱码的方式

    //1.先引用比如 : using System; using System.Collections.Generic; using System.Linq; using System.Web; usi ...

  2. nist-sha

    nist目前支持的sha运算,sha1系列,输出mac160bit. sha2系列,支持sha2-224,sha2-256,sha2-384,sha2-512,sha2-512/224,sha2-51 ...

  3. keytool 错误: java.lang.Exception: 密钥库文件不存在: keystore

    通过Android Studio编译器获取SHA1 第一步.打开Android Studio的Terminal工具 第二步.输入命令:keytool -v -list -keystore keysto ...

  4. Python中__init__()和self的有啥用

    这篇博客让我一下子就理解了,https://www.cnblogs.com/illusion1010/p/9527034.html,感谢博主 由于类可以起到模板的作用,因此,可以在创建实例的时候,把一 ...

  5. pandas 时间格式转换

    OUTLINE 常见的时间字符串与timestamp之间的转换 日期与timestamp之间的转换 常见的时间字符串与timestamp之间的转换 这里说的字符串不是一般意义上的字符串,是指在读取日期 ...

  6. 关于eric4和pyqt的入门学习(转)

    在Eric4下用PyQt4编写Python的图形界面程序 转载请注明作者RunningOn 本文是PyQt4的入门教程.网上能搜到其它教程,但我觉得讲得不是很清楚,希望这篇文章对入门者更加有帮助. 先 ...

  7. IP通信基础学习第六周(下)

    硬件地址又称物理地址或MAC地址 以太网的MAC帧格式开始的标志是有11出现时,没电时自动结束 适配器的重要功能:进行串行/并行转换:对数据进行缓存:在计算机的操作系统安装设备驱动系统:实现以太协议 ...

  8. [ABP] ASP.NET Zero 5.6.0 之 ASP.NET Zero Power Tools 破解日志

    两个要破解Patch的关键dll名称:AspNetZeroRadToolVisualStudioExtension.dll和AspNetZeroRadTool.dll AspNetZeroRadToo ...

  9. 关于linux系统CPU篇--->平均负载

    1.什么是平均负载?(load average) 平均负载是指单位时间内平均活跃进程数,包括可运行状态的进程数,以及不可中断状态的进程(如等待IO,等待硬件设备响应) 2.如何查看平均负载? 使用to ...

  10. java集合类学习笔记1

    一.集合的接口 java集合类库也将接口与实现相分离.首先看一下大家都熟悉的数据结构-队列是如何分离的.队列接口指出可以在队列的尾部添加元素,在队列的头部删除元素,并且可以查找队列中元素的个数.当需要 ...