thinkPHP学习笔记之安装配置篇(thinkphp安装教程)
25-02-10
22
在这篇文章中,我们将为您详细介绍thinkPHP学习笔记之安装配置篇的内容,并且讨论关于thinkphp安装教程的相关问题。此外,我们还会涉及一些关于ThinkPHP学习笔记之缓存使用、Thinkph
在这篇文章中,我们将为您详细介绍thinkPHP学习笔记之安装配置篇 的内容,并且讨论关于thinkphp安装教程 的相关问题。此外,我们还会涉及一些关于ThinkPHP 学习笔记之缓存使用、Thinkphp 学习笔记,thinkphp学习笔记、Thinkphp 学习笔记,thinkphp学习笔记_PHP教程、thinkphp5.0学习笔记之数据库的操作 的知识,以帮助您更全面地了解这个主题。
本文目录一览:
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 学习笔记之缓存使用 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学习笔记
前后台配置:
在根目录文件夹中创建一个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.php 的 PHP 脚本,内容如下: 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'');
D 方法和 M 方法的区别主要在于:
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 操作 并且 id 为 1 的 URL 地址
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学习笔记
前后台配置:
在根目录文件夹中创建一个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.php 的 PHP 脚本,内容如下: 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'');
D 方法和 M 方法的区别主要在于:
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 操作 并且 id 为 1 的 URL 地址
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免费学习笔记(深入)”;
http://www.bkjia.com/PHPjc/1077130.html www.bkjia.com true http://www.bkjia.com/PHPjc/1077130.html TechArticle Thinkphp 学习笔记,thinkphp学习笔记 前后台配置 : 在根目录文件夹中创建一个 Conf 文件夹 Conf 文件夹下建立一个 config.php 文件,里面存放公共...
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学习笔记之数据库的操作 的相关信息,可以在本站进行搜索。