Mongo数据库update操作有一个相对于Mysql的关键特性,它可以使用upsert模式,当更新的数据不存在时,直接插入,但是ThinkPHP的Mongo驱动居然不支持这一特性,没办法,自力更生了. ThinkPHP的driver层,见由于支持多种DB,又使用了继承,使用得类层次结构较深,负责Mongo驱动的是DbMongo.class.php,文件位于ThinkPHP\Extend\Driver\Db,修改Update方法的$options参数,如果update方法提供了upsert选项时…
0x00 前言 这个洞,早在9月29号的时候我提交给先知,那时候tp还是5.1.25的版本,天还很蓝,我也还很年轻.时至今日这个洞依旧没有审核,而tp在这期间都已经更新到了5.1.29.在最近我去跟踪的时候,发现这个洞在5.1.26版本被修复了.好吧,既然修复了,那就公开吧,我博客也好久没有漏洞类文章了.所以说做人还是不能太向钱,有漏洞为什么不直接提给厂商呢?为什么不公开呢?是贪婪让我变得面目全非XD. 事先说明,这个洞其实很鸡肋. 0x01 漏洞详情 版本:5.1.25 影响方法:insert…
论DATASNAP远程方法支持自定义对象作参数 DATASNAP远程方法已经可以支持自定义对象作参数,这是非常方便的功能. 1)自定义对象 type TMyInfo = class(TObject) public AccountNo: string; SQL: string; Params: string; end; 2)远程方法定义 function TServerMethods1.QuerySql4(const myInfo: TMyInfo): TFDJSONDataSets;var d:…
目录 使用情景 目的 实现方式 前提: 思路 核心类 测试方法 源码分享 使用情景 将定时任务录入数据库(这样做的好处是定时任务可视化,也可以动态修改各个任务的执行时间),通过反射执行对应的方法: 配合Netty实现简单的HTTP请求处理框架 其他需要使用反射执行Spring方法的业务亦可 目的       很多文章都提到了反射,但是对于方法参数处理这一块都是明确了类型,不支持按照实际参数动态转换,而本篇文章提供了一个思路怎么做到方法参数的动态调用.       大家也可以通过利用本文的方法结合…
在不使用OData的情况下,也可以让ASP.NET Web API支持$format参数,只要在WebApiConfig里添加如下三行红色粗体代码即可: using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using System.Net.Http.Formatting; namespace ProjectManagementWebAppV4 { public stat…
本文转自:http://www.cnblogs.com/liuzhendong/p/4228592.html 在不使用OData的情况下,也可以让ASP.NET Web API支持$format参数,只要在WebApiConfig里添加如下三行红色粗体代码即可: using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; using System.Net.Http.Format…
1 下载 mogodb http://www.mongodb.org/display/DOCS/Downloads 2 打开服务 我安装在e盘下了 可以指定数据文件位置 到 E:\mongoDB\mongodb-win32-i386-1.1.3\bin 目录下的 mongod.exe 是服务文件 可以创建c:\data\db 这个目录 这样的话 数据库的默认数据文件就可以在此目录下 如果没有此文件夹可以自己指定数据文件 命令如下 E:\mongoDB\mongodb-win32-i386-1.1…
1 下载 mogodb http://www.mongodb.org/display/DOCS/Downloads 2 打开服务 我安装在e盘下了 可以指定数据文件位置 到 E:\mongoDB\mongodb-win32-i386-1.1.3\bin 目录下的 mongod.exe 是服务文件 可以创建c:\data\db 这个目录 这样的话 数据库的默认数据文件就可以在此目录下 如果没有此文件夹可以自己指定数据文件 命令如下 E:\mongoDB\mongodb-win32-i386-1.1…
存储驱动完成了不同环境下面的文件存取操作,也是ThinkPHP支持分布式和云平台的基础. 默认的存储驱命名空间位于Think\Storage\Driver,每个存储驱动必须继承Think\Storage,并且实现下列接口方法(具体参数可以参考现有的存储驱动类库): 驱动方法 方法说明 架构方法 __construct($config='') 读取文件内容 read($filename,$type='') 写文件 put($filename,$content,$type='') 文件追加 appe…
ThinkPHP vendor 方法导入第三方类库 第三方类库 第三方类库指除了 ThinkPHP 框架.应用项目类库之外的其他类库,一般由第三方系统或产品提供,如 Smarty.Zend 等系统的类库等. 前面使用自动加载或 import 方法导入的类库,ThinkPHP 约定是以 .class.php 为后缀的,非这类的后缀,需要通过 import 的参数来控制. 但对第三类库,由于不会有此约定,其后缀只能认为是 php .为了方便的引入其他框架和系统的类库,ThinkPHP 特意提供了导入…