ThinkPHP如何同时自增自减多个字段

本文将带大家聊一下如何同时自增自减多个字段

前言

最近小Q同学去面试了,然后就问了题目的问题,如何同时自增自减多个字段。

小Q一时回答不出来,最终的结果就是回家等通知….

关于这个问题咔咔来给小Q简单的进行解答一下。

一、ThinkPHP框架实现

小Q最熟悉的框架就是ThinkPHP,那么咔咔就先使用ThinkPHP来解决这个问题。

首先,解决这个问题需要对框架的inc和setInc有一定的了解,在框架中也就是使用这俩个函数进行自增或者自减的。

但是俩者是有%ignore_a_1%的,inc是Db类中的方法,setInc实际调用的是模型中的方法,但是最终都使用的是thinkphp/library/think/db/Query.php这个文件的方法。

这一块的源码咔咔就不看了,后边在说吧!先解决当下问题,小Q很着急的。

大家在写自增的方法时会不会跟小Q一样一直都使用的是setInc,小Q拿到这个问题时是这样想的。

image.png
初步方案

当访问时会无情的出现给小Q一个沉痛一击。

image.png
报错信息

于是这种方式是不可行的,但是还是想实现这个功能怎么办呢!

不着急咔咔带你访问新大陆。

直接使用俩个inc方法来进行对多字段自增或者自减,那么咔咔这个思路也是简单的看源码来的。

image.png
最终方案

又或者大家应该都在使用thinkphp框架时都在一个查询中使用过俩个where方法吧!其实思路都一样既然俩个where都可以实现查询。

那么那俩个inc应该也会是可以实现多个字段进行自增或者自减的。

所以说咔咔最后的解决方案就是如上图的解决方案。

二、翻腾一下源码

在这个过程中咔咔还是去无聊的翻腾了一下关于inc的实现过程。

在下图中主要看关于参数给予的解释,可以看到第一个参数是可以为数组或者字符串的。

但是在根据码会发现,虽然支持多个字段自增或者自减但是步长却是一个值。

所以说框架给提供的这个方法是可以同时自增或者自减多个字段,但是值只能是固定的

image.png
inc的源码

如果想要实现多个字段多个步长就需要来修改源码来解决这个问题。

image.png
例如想实现多个字段对应多个步长

以下是咔咔修改源码后的内容,可以跟inc源码那一幅图做对比。

咔咔修改的源码主要为圈到的地方,因为step这个值在源码中是直接给定义为1了。

所以就需要修改这一块,使用is_array来进行检测这个变量是否为数组就可以了。

image.png
修改源码

经过以上的操作就可以实现针对多个字段多个步长进行自增或者自减了。

咔咔这种直接修改源码是不建议大家借鉴的,只是针对一个问题我们要学会去在源码中找到解决方案。

所以说针对如何同时自增自减多个字段这个问题咔咔还是建议使用方案一的解决方法。

毕竟这种情况是属于少数的,在框架基础改着改着自己都会乱。

三、使用SQL语句进行实现

如果为了解决问题这一节的内容就不用在看了,看第一节就可以完美的解决你的问题了。

咔咔是喜欢琢磨一个问题使用多种方案进行解决。

那么接下来咔咔再使用SQL语句对这个问题进行深度的解析。

既然咱们都已经在第一节中将实现方案都已经实现了,在框架中有一个方法fetchSql(),可以直接打印出sql语句

那么就来看一下这个sql语句是什么样的。

UPDATE `table`  SET `filed1` = `filed1` + 200 , `filed2` = `filed2` + 86  WHERE  `time` 
BETWEEN 1609689600 AND 1609775999

以上就是使用框架提供的方法打印出的SQL语句,表名和字段咔咔都做了更改,直接修改为自己需要自增或者自减的字段即可。

image.png
原生SQL实现方案

使用这个SQL语句是可以解决本文主题的,所以咔咔就没有给出打印结果一系列的截图,如果感兴趣的可以去自己测试一下。

俗话说的好,光说不练假把式,还是需要自己进行多多练习的。

以上就是使用原生sql在框架中实现的同时自增自减多个字段并且多个步长。

总结

这个问题其实本质很简单,框架也给提供了对应的方法,只需要直接调用就行了。

问题难在就是对框架给提供的自增或者自减的方法你知道几个,框架给提供了inc和setInc这个俩种方式。

如果你只知道setInc那岂不是就吉吉思密达了,所以没事还是多看看源码和文档,对你只有好处没有坏处。

还有一个问题就是关于咔咔在文章中提到了使用新的方式来实现同时自增自减多个字段,这种方式在框架底层进行了修改。

这种实现方式不推荐使用,修改源码只是为了测试,也是对自己阅读源码的能力进行提升,而不是在框架底层无所畏惧的进行修改。

坚持学习、坚持写博、坚持分享是咔咔从业以来一直所秉持的信念。希望在偌大互联网中咔咔的文章能带给你一丝丝帮助。我是咔咔,下期见。

以上就是ThinkPHP如何同时自增自减多个字段的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/80091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月15日 13:24:23
下一篇 2025年11月15日 13:43:44

相关推荐

  • 稳定币USDT是什么?安全吗?与USDC的区别是什么?

    稳定币在加密货币市场中扮演着重要的角色。它们的设计目标是保持价格的相对稳定,通常通过锚定某种法币(如美元)来实现。在众多稳定币中,usdt是市场份额最大、使用最广泛的一种。 稳定币USDT是什么? 1. USDT全称Tether,它是由Tether Limited公司发行的一种加密货币。USDT的设…

    2025年12月8日
    000
  • 什么是DeFi?能不能替代传统金融体系?

    defi,全称为去中心化金融(decentralized finance),是一种基于区块链技术构建的开放式金融体系。它不依赖传统银行等中介机构,而是通过智能合约实现点对点交易、借贷、质押等操作。本文将带你快速了解defi的核心机制、优势及其与传统金融的区别,并探讨它是否具备颠覆现有金融体系的可能性…

    2025年12月8日
    000
  • 2025稳定币指南:6大类型稳定币的定义与区别

    稳定币作为数字资产世界与传统金融体系之间的重要桥梁,其设计与运作机制对于理解整个加密生态系统至关重要。它们旨在通过各种方式锚定某一稳定资产(如法定货币、商品或其他数字资产)的价值,从而降低市场波动性,提供可靠的交易媒介和价值储存手段。本指南旨在详细阐述当前市场中六大类型稳定币的定义及其核心区别。 稳…

    2025年12月8日
    000
  • 热储存和冷储存有什么区别?刚入圈必须了解

    刚接触虚拟币的新手常常会听到“热储存”和“冷储存”这两个词,它们是虚拟币资产安全管理的两种核心方式。本文将带你快速了解它们的区别,并推荐适合新手的使用方式。 两种储存方式的核心差异 热储存指的是在线账户管理,如交易所平台上的资产,随时可交易、提现,方便但对网络安全依赖高。 冷储存则是将币放入脱离网络…

    2025年12月8日
    000
  • LetsBonk.fun 是什么?与Pump.fun 有什么区别?

    LetsBonk.fun 是什么?与Pump.fun 有什么区别? LetsBonk.fun 是什么? letsbonk.fun是一个去中心化的 memecoin 发行平台,由bonk社区与solana区块链上领先的去中心化交易所raydium protocol合作打造。该平台于 2025 年 4 …

    2025年12月8日
    000
  • 以太坊比特币合约区别

    以太坊与比特币智能合约的区别在于设计目标、执行环境、功能灵活性、安全性与可扩展性及适用场景。1. 设计目标上,比特币以数字货币为核心,智能合约功能有限且非图灵完备,而以太坊专为支持智能合约和DApps设计,语言图灵完备。2. 执行环境方面,比特币合约运行在受限的Bitcoin Script VM上,…

    2025年12月8日
    000
  • 什么是比特币彩虹图?如何在加密交易中使用?一文介绍

    目录 什么是比特币彩虹图?比特币彩虹图是何时创建的?比特币彩虹图V2与原始版本有何不同?如何使用比特币彩虹图1. 确认比特币当前的价格区间2. 解读加密货币市场情绪3. 与其他指标结合使用4. 计划进场和出场比特币彩虹图可靠吗?比特币彩虹图与其他流行的交易指标有何区别?如何将比特币彩虹图与其他交易工…

    2025年12月8日 好文分享
    000
  • 以太坊和比特币有什么区别?新手该选哪个?

    很多刚接触虚拟货币的新手常常分不清比特币和以太坊,甚至以为它们是同一种资产。其实,这两者虽然都属于主流数字资产,但定位、用途和技术架构都有明显差异。 一、比特币:数字黄金,价值储存为主 比特币诞生于2009年,主要用于对抗通胀和作为一种去中心化的价值储存工具,更像数字版的黄金。 它的技术更新较慢,主…

    2025年12月8日
    000
  • 稳定币USDT对标什么货币_稳定币USDT是美元吗

    稳定币USDT对标什么货币_稳定币USDT是美元吗 稳定币usdt是当前市值最大的加密稳定资产之一,其核心特性是价格锚定1:1美元,旨在为加密市场提供一种价值稳定的交易媒介。那么,usdt到底是不是美元?它又是如何“对标”美元的?以下内容将帮助你理清这两者之间的关系。 【权威推荐】2025主流数字货…

    2025年12月8日
    000
  • 稳定币与比特币有什么区别?为什么它更“稳定”?

    稳定币与比特币有什么区别?为什么它更“稳定”? 稳定币与比特币同属加密资产,但两者在价值波动、设计机制、应用场景等方面存在明显差异。了解它们的根本区别,有助于用户在不同市场情境中做出更合理的投资与使用决策。 【权威推荐】2025主流数字货币交易平台合集 Binance币安 官网直达: 安卓安装包下载…

    2025年12月8日
    000
  • 稳定币是法定货币吗_稳定币可以直接交易吗

    稳定币是法定货币吗?稳定币可以直接交易吗? 稳定币(stablecoin)是一种价格相对稳定的数字资产,通常与某种法定货币(如美元)或资产(如黄金)挂钩。虽然它的目标是保持币值稳定,但稳定币本质上不是法定货币,而是由私营公司或去中心化协议发行的加密资产。 【权威推荐】2025主流数字货币交易平台合集…

    2025年12月8日
    000
  • Ruvi AI:经过审计的AI代币,目标价1美元及以上

    ruvi ai 凭借其通过审核的安全性、现实中的应用场景以及设定的 1 美元目标价格,在加密货币领域引发了热议。它是否会成为下一个爆款?我们来一探究竟。 围绕 Ruvi AI(代币代码:RUVI)的讨论日益增多,这并不令人意外。这个将区块链与人工智能融合的项目正吸引大量关注,尤其是它设定了 1 美元…

    2025年12月8日
    000
  • MoonBull、模因币与2025年加密货币:热潮何在?

    深入探索模因币的世界以及 moonbull 的专属白名单,掌握 2025 年的最新趋势与洞见。获取 lilpepe、pengu 和 wif 的最新动态! 模因币正在掀起新一轮热潮,而 MoonBull 所采用的独特上线策略也吸引了大量关注。那么,在 2025 年,这些数字资产究竟展现出哪些新的特点?…

    2025年12月8日
    000
  • 瑞波币的RLUSD稳定币:这是金融的未来吗?

    ripple 的 rlusd 稳定币引发热议,携手 amina 银行挑战 swift。这是否是一款值得关注的稳定币? Ripple 的 RLUSD 稳定币:金融新纪元的开端? Ripple 推出的 RLUSD 稳定币正迅速吸引市场目光,它试图在全球金融系统中占据一席之地。通过建立战略性合作关系并强调…

    2025年12月8日
    000
  • AVAX、RUVI 和人工智能预测:发现下一个大型加密货币机会

    错过了雪崩(avax)的早期爆发?ruvi ai(ruvi)将区块链与人工智能深度融合,为投资者开辟了实现指数级增长的新路径,业内分析人士预测其潜在回报率或达66倍。 AVAX、RUVI与AI浪潮:探寻下一个重磅加密货币机会 加密市场如同惊险过山车,波动剧烈,寻找下一个“黑马”项目犹如大海捞针。随着…

    2025年12月8日
    000
  • 白银与比特币:现代金融工具的对决

    探索白银与比特币作为金融工具之间不断演变的动态关系。了解投资策略和市场趋势的见解。白银与比特币:它们是竞争还是互补? 白银 vs. 比特币:现代时代的金融工具对决 在持续变化的金融资产环境中,传统贵金属与加密货币之间的讨论始终吸引着投资者的目光。当比特币开辟新天地的同时,白银这一常被忽视的金属正展现…

    2025年12月8日
    000
  • Aldi购物车热门技巧:25分硬币妙招还是基本礼仪?

    解锁阿尔迪25美分购物车系统的秘密:这个爆红单技巧让你无需投币! 你打算在阿尔迪超市来一场大采购,却突然发现自己没带25美分硬币来解锁购物车?这种情况相信很多人都遇到过!最近网络上流传着一个“阿尔迪购物车25美分硬币”的妙招,据说可以轻松绕过这个限制。但这个方法真的有效吗?还是说它其实体现了一种良好…

    2025年12月8日
    000
  • 超级佩佩预售第三阶段:不只是另一个模因币,你知道的?

    超级佩佩第三阶段预售正式启动,这证明它已经超越了网络热梗的范畴。了解投资者为何对它充满期待,以及它在竞争激烈的加密市场中脱颖而出的原因。 嘿,加密世界的小伙伴们!“超级佩佩”、“预售”、“第三阶段”——这些关键词正在圈内广泛传播。但这波热潮是短暂的炒作,还是蕴含真实价值?我们一起来揭开这股风潮背后的…

    2025年12月8日
    000
  • LayerZero与Wormhole争霸跨链通信赛道,谁将成为Web3桥梁之王?

    本文将深入探讨两大主流跨链通信协议——LayerZero与Wormhole。通过剖析它们的技术架构、安全模型和生态系统,我们将对比分析两者的核心差异,并探讨在激烈的Web3跨链赛道竞争中,谁更有可能成为未来的领导者,从而解答标题中关于“谁将成为Web3桥梁之王”的问题。 2025主流加密货币交易所官…

    2025年12月8日
    000
  • 币安生态稳居龙头,中心化平台还能支撑Web3发展吗?

    本文将分析以币安为代表的中心化平台在当前Web3浪潮中的定位,并详细阐述它们如何通过自身优势,从资金、技术、用户教育等多个维度,为去中心化的Web3世界提供关键支撑,从而解答标题中的疑问。 2025主流加密货币交易所官网注册地址推荐: 欧易OKX: Binance币安: Gateio芝麻开门: 火币…

    2025年12月8日
    000

发表回复

登录后才能评论
关注微信