GVKun编程网logo

thinkPHP学习笔记之安装配置篇(thinkphp安装教程)

22

在这篇文章中,我们将为您详细介绍thinkPHP学习笔记之安装配置篇的内容,并且讨论关于thinkphp安装教程的相关问题。此外,我们还会涉及一些关于ThinkPHP学习笔记之缓存使用、Thinkph

在这篇文章中,我们将为您详细介绍thinkPHP学习笔记之安装配置篇的内容,并且讨论关于thinkphp安装教程的相关问题。此外,我们还会涉及一些关于ThinkPHP 学习笔记之缓存使用、Thinkphp 学习笔记,thinkphp学习笔记、Thinkphp 学习笔记,thinkphp学习笔记_PHP教程、thinkphp5.0学习笔记之数据库的操作的知识,以帮助您更全面地了解这个主题。

本文目录一览:

thinkPHP学习笔记之安装配置篇(thinkphp安装教程)

thinkPHP学习笔记之安装配置篇(thinkphp安装教程)

国产框架thinkPHP,是一款MVC框架,这个框架最初模拟JAVA的struts框架,使用单一入口文件模拟JAVA的过滤器,使用action来模拟STRUTS的控制器ACTION,所以为什么他的MVC之中,M是model,V是view,而control却是action的原因。

在3.2.3版本中,control改成了C,也是趋于形式,因为JAVA世界的springMVC开始流行,spring使用的control,不在使用action这种定义,其实action来表示control本身就有一定的误导,control就C嘛,为什么来一个aciton,让人摸不着头脑。

thinkPHP最难理解的是他的访问方式,在官方文档上面讲解有点误导人,按照官文一定出错,是因为官文没有讲清楚!

thinkPHP的安装其实很简单,只要require他的主程序文件,就可以生成一些列的目录,但是URL与他的control、tpl的关系是什么呢?官文说得实在太含糊了,但凡使用过JAVA的人都会被官文忽悠到吐血!

官文,能否条理清楚点!?

实际使用过后总结了以下几点:

1,安装thinkPHP:

和主程序thinkPHP同目录下建立 admin.PHP或者其他的名字都可以

代码如下:
PHP //定义项目名称和路径 define('APP_NAME',''); //名字时空的时候,就是生成的文件夹前不加前缀 define('APP_PATH','./admin/');//这个是和主程序THINKPHP同目录下生成admin目录的意思 define('APP_DEBUG',true);//开始编辑模式,文件强制编译,不缓存 // 加载框架入口文件 require( "../ThinkPHP/ThinkPHP.PHP");//主程序入口文件

2,文件目录:

自动生成的文件目录是

common:写函数的地方

conf:配置文件,例如配置数据库连接地址

lang:语言包,国际化

lib:action,model都在这里面,是一个比较重要的地方,和JAVA的lib是jar包完全不同概念

runtime:运行时的缓存文件

tpl:模板,就是html文件

3,访问方法:

URL:localhost/thinkPHP/admin.PHP?m=Show&a=add

解释:本地/项目目录/刚才建立的单一入口文件?model=类名&action=方法名

意思:进入单一入口文件admin.PHP中的Show类中的add方法

强调:类名是大写开头,小写会找不到,这个把我害苦了,弄了一下午,原来是只认识大写类名,小写不认识

infopath风格URL:localhost/thinkPHP/admin.PHP/Show/add

解释:和默认的一样,就是没有写出M A

4,写类,写方法:

thinkPHP的作者一定是一个喜欢折腾的人,完美主义者,所以才会思考出这种方式来控制程序,整个程序都是以action类为核心,一个action类等于是一个页面,里面的方法就是和这个页面相关的操作,什么增删改查啊,这个很符合国人的思考方式,但是复用性并不高。

写文件:lib/action/ShowAction.class.PHP

代码如下:
display('cc'); } }

5,写模板:

上面提到了加载模板,现在就写一个:

tpl/Show/cc.html

代码如下:一个普通HTML文件

以上就是本文的全部内容了,希望大家能够喜欢。

ThinkPHP 学习笔记之缓存使用

ThinkPHP 学习笔记之缓存使用

smarty 里边也有缓存,是页面静态化的缓存页面缓存

数据缓存

数据缓存介质:file 文件、memory 内存、数据库

可以把一些不经常使用的 mysql 数据临时放入缓存里边,每次用户获得信息就从缓存里边获得,大大的提升的 mysql 的性能,较少服务器开销

 

文件缓存:fopen  fwrite()  fread()

memory 内存缓存:安装内存缓存软件,启动软件服务,set()  get() 方法对内存数据进行读入读出操作

数据库缓存:建立数据表,启动 mysql 数据  insert()   select()  update()

 

不同介质的缓存操作的手段也不一样

tp 框架已经把各种缓存设置好了,我们可以通过统一的行为操作不同类型的缓存

使得缓存使用非常容易入门。

S(name,value)  设置缓存

缓存操作:

S(name,value, 有效期(秒));  设置缓存变量

S(name)  读取缓存变量信息

S(name,null)  删除指定的缓存变量

缓存案例原理:

缓存里边有数据直接返回使用

否则去数据库查询信息,再缓存,再供使用

下次就会跑到缓存里边获得指定的信息,过了有效期还要重启跑到数据库获得数据

 

生成的具体缓存文件:

 


Thinkphp 学习笔记,thinkphp学习笔记

Thinkphp 学习笔记,thinkphp学习笔记

thinkphp 学习笔记,thinkphp学习笔记

前后台配置:

在根目录文件夹中创建一个Conf文件夹

Conf文件夹下建立一个config.php文件,里面存放公共配置信息,方便前后台调用。

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;

简单定义404页面

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;

伪静态去除.html

Config中 URL_HTML_SUFFIX  => ‘’

 

立即学习“PHP免费学习笔记(深入)”;

分配模版

1:$this ->assign(‘XXX’,$XXX);

2:$this->a = 111;

3:$this->assign(‘xxx’,$xxx)->display();

 

立即学习“PHP免费学习笔记(深入)”;

时间戳处理

{$v.time|date=''y-m-d H:i'',###}

 

立即学习“PHP免费学习笔记(深入)”;

分组:

 

立即学习“PHP免费学习笔记(深入)”;

分组后 common 文件夹下单独使用的文件名应该较 function.php 而不是 common.php

 

立即学习“PHP免费学习笔记(深入)”;

JS 外部地址不能解析 U函数:

Html页面:

非应用组写法:

 

立即学习“PHP免费学习笔记(深入)”;

应用组写法

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;

后面一个空为处理 伪静态 .html  去除.html 

 

立即学习“PHP免费学习笔记(深入)”;

Js页面:

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;

错误页面定制:

Conf文件夹下

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;

数据存入:

1)

 

立即学习“PHP免费学习笔记(深入)”;

2):

 

立即学习“PHP免费学习笔记(深入)”;

数据读取:

1):

 

立即学习“PHP免费学习笔记(深入)”;

2):

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;

随机数:

mt_rand(min,max);

 

立即学习“PHP免费学习笔记(深入)”;

U方法去除.html结尾

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;

验证码制作:

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;

SESSION存入数据库:

1): 配置文件中

 

立即学习“PHP免费学习笔记(深入)”;

2):创建数据库表:

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;

ThinkPHP常用各种方法

A() 加载Action类 
D() 加载Model类 
S() 全局缓存配置 
L() 获取语言定义 
C() 获取配置值
F() 快速文件数据读取和保存 针对简单类型数据 字符串、数组
U() 用于完成对URL地址的组装
I() 快速创建一个对象实例

1.A 快速创建Action对象

$action=new UserAction();// 等同于以下写法:$action=A("User");而且,如果当前的UserAction类还没有引入的话,A方法会自动引入。并且具有单例模式的支持,不会重复创建相同的Action对象。

A方法支持跨项目调用,例如:
 
$action=A("User",''Admin''); //实例化Admin项目的UserAction

2.D 快速创建模型数据对象
 
先定义好模型类,如UserModel,然后就可以用D()函数对数据进行操作了。例如:
 
先在"你的项目"/Lib/Model下建立一个名为UserModel.class.phpPHP脚本,内容如下:
 
class UserModel extends Model{}

然后,无需增加任何属性和方法,就可以进行如下操作:
 
$User=D("User"); //实例化User对象,User是你在数据库建立的一个名为"前缀_user"的数据表,也可以用$User=new UserModel()代替,进行实例化对象的操作。实例化之后,就可以对数据进行增删查改等一系列操作了,如:
 
$User->find(1); //查找主键为1的记录

我们在做用户金币或者是积分或者是投票的时候,需要对指定的字段自加1这时候我可以可以这样写

$User->score=''(score+1)'';$s->save(); 这样我们会省下许多的步骤。

如果要修改指定的一个字段更可以简写为如下:

D(''User'')->setField(''name'',''hehe'',''id=2'');

方法和 方法的区别主要在于:

M方法不需要创建模型类文件,M方法不会读取模型类,所以默认情况下自动验证是无效的,但是可以通过动态赋值的方式实现;而D方法必须有创建模型类,我们可以用下面两种方法去创建一个数据表的映射对象。

第一种:$Test=D(''Test'');

第二种:$Test=new Model(''Test'');

虽然这两种都可以对数据进行select,insert,delete,udpate操作,在数据验证上有很大的不同,用第一种方式实例一个模型就 会有数据检查功能,例如可以定义如果 title 没有填写的话就会提示 请输入标题” (这个是tp提供的一个自动验证功能,当然也需要在相应的 model 中定义好验证条件)

D方法可以自动检测模型类,不存在时他会抛出一个异常。同时对于已实例化得得模型不会再去重复实例化(单例)。默认的D方法只能支持调用当前的项目(或者叫做应用)下的模型。例如:

$user=new UserModel();

等价于$user=D(''user'');

如果实例化的是一个空模型,例如:

$Demo=new Model();

那么它等价于:

$Demo=M();
 
3.S 快速操作缓存方法
 
ThinkPHP把各种缓存方式都抽象成统一的缓存类来调用,而且ThinkPHP把所有的缓存机制统一成一个S方法来进行操作,所以在使用不同的缓存方式的时候并不需要关注具体的缓存细节。如:

S(''data'',$Data); //使用data标识缓存$Data数据 
S(''data'',$Data,3600); //缓存$Data数据3600秒 
$Data=S(''data''); //获取缓存数据 
S(''name'',null); // 删除缓存标识name
 
4.L 快速操作语言变量

L方法提供了多语言的支持,可以快速设置和获取语言定义。

L(''USER_INFO'',''用户信息''); //设置名称为USER_INFO 的语言变量 
L(''USER_INFO''); //获取USER_INFO的语言变量值 
//批量赋值 
$array[''USER_INFO'']=''用户信息'';$array[''ERROR_INFO'']=''错误信息''; 
L($array);

5.C 快速操作配置变量,用法就是 C("这里填写在配置文件里数组的下标")

C(''USER_AUTH_ON'',true); //设置名称为USER_AUTH_ON 的配置参数 
C(''USER_AUTH_ON''); //获取USER_AUTH_ON的变量值

L一样,C也支持批量赋值
 
注意:配置参数不区分大小写

此外从1.5版本开始,C方法还支持二维数组的操作,例如:
 
C(''USER.USER_TYPE'',1); 
C(''USER.USER_AUTH_ON'');  

6. F 文件数据保存方法

F方法主要用于项目的文件数据的写入、更改和删除,其工作机理和S方法是类似的,区别在于用途不同,数据保存的目录也不同,而且不能指定缓存方式,因为默认就是文件形式保存数据。F方法使用了var_export方法,所以只能支持简单数据类型,不支持对象的缓存。

7. U 用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址

该函数格式为:U(''地址'',''参数'',''伪静态'',''是否跳转'',''显示域名'');在模板中使用U方法而不是固定写死URL地址的好处在于,一旦 你的环境变化或者参数设置改变,你不需要更改模板中的任何代码。在模板中的调用格式需要采用 {:U(''地址'', ''参数''…)} 的方式。

U方法的用法示例:

U(''User/add'') // 生成User模块的add操作地址

也可以支持分组调用:

U(''Home/User/add'') // 生成Home分组的User模块的add操作地址

当然,也可以只是写操作名,表示调用当前模块的

U(''add'') // 生成当前访问模块的add操作地址

除了分组、模块和操作名之外,我们也可以传入一些参数:

U(''Blog/read?id=1'') // 生成Blog模块的read操作 并且id1URL地址

U方法的第二个参数支持传入参数,支持数组和字符串两种定义方式,如果只是字符串方式的参数可以在第一个参数中定义,下面几种方式都是等效的:

U(''Blog/cate'',array(''cate_id''=>1,''status''=>1))
U(''Blog/cate'',''cate_id=1&status=1'')
U(''Blog/cate?cate_id=1&status=1'')

 

导入 CSS/JS 文件

 

 

 

 

 

立即学习“PHP免费学习笔记(深入)”;

Thinkphp 学习笔记,thinkphp学习笔记_PHP教程

Thinkphp 学习笔记,thinkphp学习笔记_PHP教程

thinkphp 学习笔记,thinkphp学习笔记

前后台配置:

在根目录文件夹中创建一个Conf文件夹

Conf文件夹下建立一个config.php文件,里面存放公共配置信息,方便前后台调用。

 

 

立即学习“PHP免费学习笔记(深入)”;

简单定义404页面

 

 

立即学习“PHP免费学习笔记(深入)”;

伪静态去除.html

Config中 URL_HTML_SUFFIX  => ‘’

 

立即学习“PHP免费学习笔记(深入)”;

分配模版

1:$this ->assign(‘XXX’,$XXX);

2:$this->a = 111;

3:$this->assign(‘xxx’,$xxx)->display();

 

立即学习“PHP免费学习笔记(深入)”;

时间戳处理

{$v.time|date=''y-m-d H:i'',###}

 

立即学习“PHP免费学习笔记(深入)”;

分组:

 

分组后 common 文件夹下单独使用的文件名应该较 function.php 而不是 common.php

 

立即学习“PHP免费学习笔记(深入)”;

JS 外部地址不能解析 U函数:

Html页面:

非应用组写法:

 

应用组写法

 

 

立即学习“PHP免费学习笔记(深入)”;

后面一个空为处理 伪静态 .html  去除.html 

 

Js页面:

 

 

立即学习“PHP免费学习笔记(深入)”;

错误页面定制:

Conf文件夹下

 

 

 

立即学习“PHP免费学习笔记(深入)”;

数据存入:

1)

 

2):

 

数据读取:

1):

 

2):

 

 

立即学习“PHP免费学习笔记(深入)”;

随机数:

mt_rand(min,max);

 

立即学习“PHP免费学习笔记(深入)”;

U方法去除.html结尾

 

 

立即学习“PHP免费学习笔记(深入)”;

验证码制作:

 

 

立即学习“PHP免费学习笔记(深入)”;

 

立即学习“PHP免费学习笔记(深入)”;

SESSION存入数据库:

1): 配置文件中

 

2):创建数据库表:

 

 

立即学习“PHP免费学习笔记(深入)”;

ThinkPHP常用各种方法

A() 加载Action类 
D() 加载Model类 
S() 全局缓存配置 
L() 获取语言定义 
C() 获取配置值
F() 快速文件数据读取和保存 针对简单类型数据 字符串、数组
U() 用于完成对URL地址的组装
I() 快速创建一个对象实例

1.A 快速创建Action对象

$action=new UserAction();// 等同于以下写法:$action=A("User");而且,如果当前的UserAction类还没有引入的话,A方法会自动引入。并且具有单例模式的支持,不会重复创建相同的Action对象。

A方法支持跨项目调用,例如:
 
$action=A("User",''Admin''); //实例化Admin项目的UserAction

2.D 快速创建模型数据对象
 
先定义好模型类,如UserModel,然后就可以用D()函数对数据进行操作了。例如:
 
先在"你的项目"/Lib/Model下建立一个名为UserModel.class.phpPHP脚本,内容如下:
 
class UserModel extends Model{}

然后,无需增加任何属性和方法,就可以进行如下操作:
 
$User=D("User"); //实例化User对象,User是你在数据库建立的一个名为"前缀_user"的数据表,也可以用$User=new UserModel()代替,进行实例化对象的操作。实例化之后,就可以对数据进行增删查改等一系列操作了,如:
 
$User->find(1); //查找主键为1的记录

我们在做用户金币或者是积分或者是投票的时候,需要对指定的字段自加1这时候我可以可以这样写

$User->score=''(score+1)'';$s->save(); 这样我们会省下许多的步骤。

如果要修改指定的一个字段更可以简写为如下:

D(''User'')->setField(''name'',''hehe'',''id=2'');

方法和 方法的区别主要在于:

M方法不需要创建模型类文件,M方法不会读取模型类,所以默认情况下自动验证是无效的,但是可以通过动态赋值的方式实现;而D方法必须有创建模型类,我们可以用下面两种方法去创建一个数据表的映射对象。

第一种:$Test=D(''Test'');

第二种:$Test=new Model(''Test'');

虽然这两种都可以对数据进行select,insert,delete,udpate操作,在数据验证上有很大的不同,用第一种方式实例一个模型就 会有数据检查功能,例如可以定义如果 title 没有填写的话就会提示 请输入标题” (这个是tp提供的一个自动验证功能,当然也需要在相应的 model 中定义好验证条件)

D方法可以自动检测模型类,不存在时他会抛出一个异常。同时对于已实例化得得模型不会再去重复实例化(单例)。默认的D方法只能支持调用当前的项目(或者叫做应用)下的模型。例如:

$user=new UserModel();

等价于$user=D(''user'');

如果实例化的是一个空模型,例如:

$Demo=new Model();

那么它等价于:

$Demo=M();
 
3.S 快速操作缓存方法
 
ThinkPHP把各种缓存方式都抽象成统一的缓存类来调用,而且ThinkPHP把所有的缓存机制统一成一个S方法来进行操作,所以在使用不同的缓存方式的时候并不需要关注具体的缓存细节。如:

S(''data'',$Data); //使用data标识缓存$Data数据 
S(''data'',$Data,3600); //缓存$Data数据3600秒 
$Data=S(''data''); //获取缓存数据 
S(''name'',null); // 删除缓存标识name
 
4.L 快速操作语言变量

L方法提供了多语言的支持,可以快速设置和获取语言定义。

L(''USER_INFO'',''用户信息''); //设置名称为USER_INFO 的语言变量 
L(''USER_INFO''); //获取USER_INFO的语言变量值 
//批量赋值 
$array[''USER_INFO'']=''用户信息'';$array[''ERROR_INFO'']=''错误信息''; 
L($array);

5.C 快速操作配置变量,用法就是 C("这里填写在配置文件里数组的下标")

C(''USER_AUTH_ON'',true); //设置名称为USER_AUTH_ON 的配置参数 
C(''USER_AUTH_ON''); //获取USER_AUTH_ON的变量值

L一样,C也支持批量赋值
 
注意:配置参数不区分大小写

此外从1.5版本开始,C方法还支持二维数组的操作,例如:
 
C(''USER.USER_TYPE'',1); 
C(''USER.USER_AUTH_ON'');  

6. F 文件数据保存方法

F方法主要用于项目的文件数据的写入、更改和删除,其工作机理和S方法是类似的,区别在于用途不同,数据保存的目录也不同,而且不能指定缓存方式,因为默认就是文件形式保存数据。F方法使用了var_export方法,所以只能支持简单数据类型,不支持对象的缓存。

7. U 用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址

该函数格式为:U(''地址'',''参数'',''伪静态'',''是否跳转'',''显示域名'');在模板中使用U方法而不是固定写死URL地址的好处在于,一旦 你的环境变化或者参数设置改变,你不需要更改模板中的任何代码。在模板中的调用格式需要采用 {:U(''地址'', ''参数''…)} 的方式。

U方法的用法示例:

U(''User/add'') // 生成User模块的add操作地址

也可以支持分组调用:

U(''Home/User/add'') // 生成Home分组的User模块的add操作地址

当然,也可以只是写操作名,表示调用当前模块的

U(''add'') // 生成当前访问模块的add操作地址

除了分组、模块和操作名之外,我们也可以传入一些参数:

U(''Blog/read?id=1'') // 生成Blog模块的read操作 并且id1URL地址

U方法的第二个参数支持传入参数,支持数组和字符串两种定义方式,如果只是字符串方式的参数可以在第一个参数中定义,下面几种方式都是等效的:

U(''Blog/cate'',array(''cate_id''=>1,''status''=>1))
U(''Blog/cate'',''cate_id=1&status=1'')
U(''Blog/cate?cate_id=1&status=1'')

 

导入 CSS/JS 文件

 

 

 

 

 

立即学习“PHP免费学习笔记(深入)”;

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1077130.htmlTechArticleThinkphp 学习笔记,thinkphp学习笔记 前后台配置 : 在根目录文件夹中创建一个 Conf 文件夹 Conf 文件夹下建立一个 config.php 文件,里面存放公共...

thinkphp5.0学习笔记之数据库的操作

thinkphp5.0学习笔记之数据库的操作

thinkphp内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,db类会自动调用相应的数据库驱动来处理。采用pdo方式,目前包含了mysql、sqlserver、pgsql、sqlite等数据库的支持。

1.基本使用

配置了数据库连接信息后,我们就可以直接使用数据库运行原生SQL操作了,支持query(查询操作)和execute(写入操作)方法,并且支持参数绑定。

public function read()
{$sql = Db::query(''select * from news'');
    dump($sql);   
    
}
登录后复制

输出的是:

execute方法:

public function read()
{$sql = Db::execute(''insert into news (nid, rid) values (11, 11)'');;
    dump($sql);
}
登录后复制

输出:

立即学习“PHP免费学习笔记(深入)”;

数据库添加成功!

也支持命名占位符绑定,例如:

public function read()
{$sql = Db::query(''select * from news where nid=:nid'',[''nid''=>1]);
    dump($sql);
}
登录后复制

输出:

execute方法:

public function read()
{$sql = Db::execute(''insert into news (nid, rid) values (:nid, :rid)'',[''nid''=>18,''rid''=>''121'']);
    dump($sql);
}
登录后复制

输出:

数据库添加成功!

 

可以使用多个数据库连接:

2.查询构造器

听名字就知道,很装X..

先来看基本查询

查询一个数据:

 // table方法必须指定完整的数据表名$sql =Db::table(''news'')->where(''nid'',1)->find();
    dump($sql);
登录后复制

find = 查询一条;并且查询结果不存在,返回 null

输出:

Db::table(''think_user'')->where(''status'',1)->select();
登录后复制

这条查询语句与上面同效,但是select 方法查询结果不存在,返回空数组

额 这个玩意叫查询数据集,没错!

默认情况下,find和select方法返回的都是数组。

 

如果你要查询某个字段的值,咋整?

public function read()
{// 返回某个字段的值$sql =Db::table(''news'')->where(''nid'',18)->value(''rid'');
    dump($sql);
}
登录后复制

这样看输出,我求rid的值:

 

如果你需要处理成千上百条数据库记录,可以考虑使用chunk方法,该方法一次获取结果集的一小块,然后填充每一小块数据到要处理的闭包,该方法在编写处理大量数据库记录的时候非常有用。

public function read()
{$sql =Db::table(''news'')->chunk(1,function($user){foreach($user as $u)
        {
dump($u);
        }
    });
    

}
登录后复制

这个样子  就可以一条一条都给遍历出来了!

是“一条一条·”,嘿!

 

3.添加数据跟删除数据

使用 Db 类的 insert 方法向数据库提交数据

public function read()
{$data = [''ntitle'' => ''123'', ''rid'' => ''456''];$sql = Db::table(''news'')->insert($data);
    
dump($sql);
}
登录后复制

添加成功后insert 方法返回添加成功的条数,insert 正常情况返回 1

添加数据后如果需要返回新增数据的自增主键,可以使用getLastInsID方法:

public function read()
{$data = [''ntitle'' => ''123'', ''rid'' => ''345''];$sql = Db::table(''news'')->insert($data);$userId = Db::name(''news'')->getLastInsID(''nid'');
dump($userId);
dump($sql);
}
登录后复制

看输出:

主键字段22!

 

 添加多条数据:

添加多条数据直接向 Db 类的 insertAll 方法传入需要添加的数据即可;

public function read()
{$data = [
[''ntitle'' =>''gaga'',''rid'' => ''12''],[''ntitle'' =>''gaaaga'',''rid'' => ''123'']
];$sql = Db::table(''news'')->insertAll($data);

dump($sql);
}
登录后复制

这样的话,返回的应该是两条2

删除数据:

根据主键来删除

public function read()
{//    根据主键 来删$sql = Db::table(''news'')->delete(1);//多删
//$sql = Db::table(''news'')->delete(1,2,3);dump($sql);
}
登录后复制

执行成功返回影响行数;

还有一种是根据条件来删除

public function read()
{//    根据条件 来删$sql = Db::table(''news'')->where(''nid'',18)->delete();//多删
//$sql = Db::table(''news'')->where(''nid'',''delete();dump($sql);
}
登录后复制

执行成功也是返回影响行数;

4.查询方法:

where方法:

可以使用where方法进行AND条件查询:

public function read()
{$sql = Db::table(''news'')->where(''nid'',20)->where(''ntitle'',123)->find();
dump($sql);
}
登录后复制

whereOr方法:

使用whereOr方法进行OR查询:

public function read()
{$sql = Db::table(''news'')->where(''nid'',20)->whereOr(''ntitle'',''like'',''%123%'')->find();
dump($sql);
}
登录后复制

混合查询:

where方法和whereOr方法在复杂的查询条件中经常需要配合一起混合使用

public function read()
{$sql = Db::table(''news'')->where(function($query){$query->where(''nid'',21)->where(''nid'',22);
})->whereOr(function($query)
{$query->where(''ntitle'',''123'')->whereOr(''ntitle'',''123'');
})->select();
dump($sql);
}
登录后复制

输出的是:

看一下生成的代码:

SELECT * FROM `news` WHERE  (  `nid` = 1 OR `nid` = 2 ) OR (  `ntitle` LIKE ''123'' OR `ntitle` LIKE ''123'' )
登录后复制

第一个查询方法用where或者whereOr是没有区别的。

 

查询接五

 

以上就是thinkphp5.0学习笔记之数据库的操作的详细内容,更多请关注php中文网其它相关文章!

我们今天的关于thinkPHP学习笔记之安装配置篇thinkphp安装教程的分享就到这里,谢谢您的阅读,如果想了解更多关于ThinkPHP 学习笔记之缓存使用、Thinkphp 学习笔记,thinkphp学习笔记、Thinkphp 学习笔记,thinkphp学习笔记_PHP教程、thinkphp5.0学习笔记之数据库的操作的相关信息,可以在本站进行搜索。

本文标签: