链式写法php,ThinkPHP框架SQL操纵链式写法道理(浅显易懂)_PHP开发框架教程

本文主要是介绍链式写法php,ThinkPHP框架SQL操纵链式写法道理(浅显易懂)_PHP开发框架教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下面由

thinkphp框架教程栏目给人人引见ThinkPHP框架SQL操纵链式写法道理,愿望对须要的朋侪有所协助!

b0d74e545940a17a400e6e86ea0cc51b.png

弁言

人人假如有口试频频不难发明,虽然国产的TP一向被人诟病。然则涓滴不能影响它在宽大企业中的开发遭到喜爱,壮大的社区,暴力有用细致的中文手册。有一个处所置信人人都不生疏,就是他的链式写法,链式写法的肯定程度上简化了SQL工作量。OK,是怎样完成的,那我们从面向对象入手,剖析链式写法的完成道理。

以下语句

$User->limit(10)->where('status=1')->select();

代码

我们晓得,面向对象的要领,能够返回多种数据范例,固然,也能够返回对象本身,所以我们能够应用这个特征来完成

class Test{

private $var = "";

public function Func(){

$this->var = "Var is change";

return $this;

}

}

$obj = new Test();

var_dump($obj);

var_dump($obj->Func());

打印出来的效果:

object(Test)[1]

private 'var' => string '' (length=0)

object(Test)[1]

private 'var' => string 'Var is change' (length=13)

不难发明:我们私有变量 发 生 了 改 变 。 也 就 是 说 , 我 们 obj->Func(),实行后,返回了一个带着$var = "Var is change"的对象。

$User->limit(10)->where('status=1')->select();

那末这个语句就不难理解了。 要领实行后,通报对象给下个要领,以此类推。

简朴的Select()完成

class UserModel{

private $field ="*";

private $tableName ="";

private $where ="";

private $order ="";

private $limit ="";

function field($field){

$this->field = $field;

return $this;

}

function table($tableName){

$this->table = $tableName;

return $this;

}

function order($order){

$this->order = "ORDER BY ".$order;

return $this;

}

function where($where){

$this->where = "WHERE ".$where;

return $this;

}

function limit($index, $limit = 0){

$this->limit = "LIMIT ".$index;

if($limit){

$this->limit.= ",{$limit}";

}

return $this;

}

function select(){

if(empty($this->tableName)){

$this->tableName = str_replace("Model", "", __CLASS__);//假如表名不指定,则猎取类名

}

$selectSql ="SELECT {$this->field}

FROM `{$this->tableName}`

{$this->where}

{$this->order}

{$this->limit}";

//组织SQL语句模版串

echo $selectSql;

//return mysql_query($selectSql); 实行拼接后的SQL语句

}

}

$user = new UserModel();

$user->where("`user` = 1")->order("`user` DESC")->limit(5)->select();?>

总结

思绪也许就是经由过程链式操纵要领,给SQL语句的各个前提赋值,然后到最后一步一致处置惩罚SQL语句。这里只是简朴地完成下道理,故意的同砚能够对要领参数多种范例推断,越发天真地赋前提。比方where要领能够传数组。然后也能够依照此思绪,做比方INSERT(),UPDATE(),DELETE()等等。这里只是举一反三,假如要越发深切相识链式写法,也能够看TP源码。

以上就是ThinkPHP框架SQL操纵链式写法道理(浅显易懂)的细致内容,更多请关注ki4网别的相干文章!

收藏 | 0

这篇关于链式写法php,ThinkPHP框架SQL操纵链式写法道理(浅显易懂)_PHP开发框架教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/424729

相关文章

MySQL字符串转数值的方法全解析

《MySQL字符串转数值的方法全解析》在MySQL开发中,字符串与数值的转换是高频操作,本文从隐式转换原理、显式转换方法、典型场景案例、风险防控四个维度系统梳理,助您精准掌握这一核心技能,需要的朋友可... 目录一、隐式转换:自动但需警惕的&ld编程quo;双刃剑”二、显式转换:三大核心方法详解三、典型场景

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

MySQL快速复制一张表的四种核心方法(包括表结构和数据)

《MySQL快速复制一张表的四种核心方法(包括表结构和数据)》本文详细介绍了四种复制MySQL表(结构+数据)的方法,并对每种方法进行了对比分析,适用于不同场景和数据量的复制需求,特别是针对超大表(1... 目录一、mysql 复制表(结构+数据)的 4 种核心方法(面试结构化回答)方法 1:CREATE

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

SQL Server中行转列方法详细讲解

《SQLServer中行转列方法详细讲解》SQL行转列、列转行可以帮助我们更方便地处理数据,生成需要的报表和结果集,:本文主要介绍SQLServer中行转列方法的相关资料,需要的朋友可以参考下... 目录前言一、为什么需要行转列二、行转列的基本概念三、使用PIVOT运算符进行行转列1.创建示例数据表并插入数

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

MySQL MHA集群详解(数据库高可用)

《MySQLMHA集群详解(数据库高可用)》MHA(MasterHighAvailability)是开源MySQL高可用管理工具,用于自动故障检测与转移,支持异步或半同步复制的MySQL主从架构,本... 目录mysql 高可用方案:MHA 详解与实战1. MHA 简介2. MHA 的组件组成(1)MHA

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

SQL 注入攻击(SQL Injection)原理、利用方式与防御策略深度解析

《SQL注入攻击(SQLInjection)原理、利用方式与防御策略深度解析》本文将从SQL注入的基本原理、攻击方式、常见利用手法,到企业级防御方案进行全面讲解,以帮助开发者和安全人员更系统地理解... 目录一、前言二、SQL 注入攻击的基本概念三、SQL 注入常见类型分析1. 基于错误回显的注入(Erro

MySQL基本表查询操作汇总之单表查询+多表操作大全

《MySQL基本表查询操作汇总之单表查询+多表操作大全》本文全面介绍了MySQL单表查询与多表操作的关键技术,包括基本语法、高级查询、表别名使用、多表连接及子查询等,并提供了丰富的实例,感兴趣的朋友跟... 目录一、单表查询整合(一)通用模版展示(二)举例说明(三)注意事项(四)Mapper简单举例简单查询