Skip to main content
 Web开发网 » 站长学院 » Thinkphp教程

PHP学习Thinkphp框架(2)——数据库查询,添加操作和Think模板引擎

2021年11月14日5720百度已收录

本次笔记代码较少,需要记得方法很多,需要理解的地方也很多,需要更多的交流和查询手册,才能更好地学习!!

PHP学习Thinkphp框架(2)——数据库查询,添加操作和Think模板引擎  thinkphp模板 第1张

改:

update(array $data):

功能:执行数据更新,一般配合where()方法使

用;

参数:关联数组;

返回:受影响行数;

setField(string $field.,mixed $value):

功能:更新指定字段;

参数:$field:字段名;$value:字段值;

返回:受影响的行数;

查:

where(mixed $field,$op=null,

$condition=null):

功能:指定查询(更新|删除)条件,多个查询条

件,可以使用多个where()方法来指定;多个where()方法

之间是"且"的关系;

参数:

一个($field):字符串:where('id=数

字')或where('username=张三');数组:where(['id'=>数

字])或where('username'=>'张三');

两个($op):where('id',数字);where

('username','张三');操作符:eq等于,gt 大于,lt 小于

,egt 大于等于,elt 小于等于,neq 不等于....

三个($condition):where('id','=',

数字)或where('id','in',[1,2,3]);

返回:数据库对象;

whereOr(whereOr(mixed $field, $op=null,

$condition=null):多个whereOr()方法之间是"或"的关

系;

order(mixed $value):

功能:对查询结果集进行排序;

参数:字符串:"字段名 DESC";数组:['

字段名'=>'DESC'];

返回:数据库对象;

limit(查询数量):指定返回结果的数量;

limit(起始索引,查询数量);

执行原生SQL:

Db::query(查询SQL) 查;

Db::execute(原生SQL) 增删改;

Think模板引擎:=>

标签(定界符):

普通标签:用于变量输出或者注释->{$变量};

标签库标签:用于流程控制语句或者文件引入等

{if condition="条件表达式"}代码{/if} ;

自定义标签(config.php):

// 模板引擎普通标签开始标记

'tpl_begin' => '{{',

// 模板引擎普通标签结束标记

'tpl_end' => '}}',

// 标签库标签开始标记

'taglib_begin' => '{{',

// 标签库标签结束标记

'taglib_end' => '}}',

数据展示:

注释:{{//注释内容}}};{{/*多行注释*/}}

变量:

标量(数字,布尔,字符串)的展示:{{$变量

名}}

数组:{{$数组名[键]}};{{$数组名.键}};

对象:属性:{{$对象->属性名}};{{$对象.属

性名}};方法:{{$对象->方法名([参数])}};{{$对象.方

法名([参数])}};

变量调解器:

基本语法:{{$变量|变量调解的内容}};

日期转换:{{$变量|date="日期格式",###}};

大小写转换:

转成大写:{{$变量|strtoupper}};

转换成小写:{{$变量|strtolower}};

首字母大写:{{$变量|ucfirst}};

截取字符串:

{{$变量|substr=起始索引,截取长

度}};(对英文截取)

{{$变量|mb_substr=起始索引,截取长

度}};(对汉字进行截取)

声明:Think模板引擎支持"管道"的写法{{$变

量|strtolower|substr=0,3}};

保留变量:不需要进行赋值,而直接访问的变量;

$Think:

{{$Think.const.常量名}}或

{{$Think.常量名}};

{{$Think.get.参数名}};

{{$Think.post.键}};

{{$Think.session.键}};

{{$Think.cookie.键}};

{{$Think.config.配置项}};

$Request:

$Request.module 获取当前模块名称

$Request.controller 获取当前控制

器名称

$Request.action 获取当前方法名称

三目运算符:{{$变量 ? 值1:值2}};

流程控制语句:

if语句:

{{if condition="条件表达式1"}}

{{elseif condition="条件表达式

2"}}

{{else /}}

{{/if}}

foreach语句:

方式1:

{{foreach $数组 as $元素}}

// 代码

{{/foreach}}

方式2:

{{foreach name="数组" item="元

素"}}

// 代码

{{/foreach}}

volist语句:

{{volist name="数组" id="元素"

key='key' empty="数组为空时的提示消息"}}

// {{$key}} {{$元素}}

{{/volist}}

在模板调用PHP的函数:{{:函数名([参数])}}

控制器:

模板相关:

assign():

绑定单个变量:$this->assign('模板中的变

量名', PHP中的变量);

绑定多个变量:

$this->assign([

'变量名1' => $变量1,

'变量名2' => $变量2,

fetch():return $this->fetch([模板路径]);

默认路径:当前模块/view/控制器名/

方法名.html

助手函数:

位置:thinkphp/helper.php

db(string $table) 获取对象;

url('模块名/控制器名/方法名');

代码演示:=>

* 验证数据库的更新操作

* 访问路径:

* index.php/index/dbtest/update

public function update()

// 1. 获取数据库对象

// $res = db('user')

// ->where('id', '=', 1)

// ->update(['balance' => 100000000]);

// $res = db('user')

// ->where('id=1')

// ->setField('balance', 200000000);

// 递增更新

$res = db('blog')

->where('id=8')

->setInc('view');

// 递减更新

$res = db('user')

->where('id=1')

->setDec('balance', 2000000);

echo $res;

* 验证数据库查询

* 访问路径:

* index.php/index/dbtest/query

public function query()

// 查询所有的用户

$res = db('user')

->field(['id', 'username'])

->where('admin', '=', 0)

->order('create DESC')

->limit(2) // 返回2条数据

// ->select();

->buildSql(); // 返回原生SQL

// 查询一条用户信息

// $res = db('user')

// ->field("id, username, balance")

// ->find(1);

print_r($res);

* 验证Think模板引擎

* 访问路径:

* index.php/index/dbtest/tpl

public function tpl()

$hi = "hello, World";

$user = db('user')

->field("id,username,create")

->where('id', 'eq', 1)

->find();

// print_r($user);

$obj = json_decode(json_encode($user));

// print_r($obj);

// 绑定模板变量

// 模板中的变量名

// $this->assign('hello', $hi);

// $this->assign('user', $user);

// $this->assign('obj', $obj);

// assign绑定多个变量

$this->assign([

'hello' => $hi,

'user' => $user,

'obj' => $obj,

// 调用模板

return $this->fetch();

评论列表暂无评论
发表评论
微信