ThinkPHP3.2 where方法的使用】的更多相关文章

ThinkPHP3.2 中空方法.空控制器和空模块的设置 1.空方法设置 问题: 当你访问一个不存在的方法的时候: 如: http://localhost/test/index.php/Home/User/getList 会报如下错: :( 非法操作:getList 错误位置 FILE: D:\phpStudy\WWW\test\ThinkPHP\Library\Think\Controller.class.php LINE: 170 解决: 只需要在控制器中写如下方法便OK. /** * 空操…
where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询.表达式查询.快捷查询.区间查询.组合查询在内的查询操作.where方法的参数支持字符串和数组,虽然也可以使用对象但并不建议. 字符串条件 $User = M("User"); // 实例化User对象 $User->where('type=1 AND status=1')->select(); SELECT * FROM think_user W…
success方法的url一定要用U()方法来生成, $this->success('修改成功',U('showlist'),3);…
JAVA学习总结    2 第一天    2 1:计算机概述(了解)    2 (1)计算机    2 (2)计算机硬件    2 (3)计算机软件    2 (4)软件开发(理解)    2 (5)语言    2 (6)人机交换    2 2:键盘功能键的认识和快捷键(掌握)    2 (1)功能键的认识    2 (2)快捷键    3 3:常见的DOS命令(掌握)    3 (1)常见的如下    3 (2)其他的几个(了解)    3 4:Java语言概述(了解)    4 (1)Jav…
今天博主看3.1的教程,学着3.2,就遇到了这个坑,怎么就是不跳转呢,很纳闷!! 在thinkphp3.1 中 U()方法是可以执行跳转的(看视频教程里面是可以的,博主没有测试过). 但是在thinkphp3.2.3中,U方法用于URL的动态生成,但是不会跳转页面,要跳转请使用$this->redirect() 或者redirect()方法. 其他网友也遇到过这个问题:http://www.thinkphp.cn/topic/27636.html…
ThinkPHP3.2 G函数代码及 使用方法 代码: // 内存是否可调用 define('MEMORY_LIMIT_ON',function_exists('memory_get_usage')); /** * 记录和统计时间(微秒)和内存使用情况 * 使用方法: * <code> * G('begin'); // 记录开始标记位 * // ... 区间运行代码 * G('end'); // 记录结束标签位 * echo G('begin','end',6); // 统计区间运行时间 精确…
ThinkPHP3.2判断是否为手机端访问并跳转到另一个模块的方法 目录结构 公共模块Common,Home模块,Mobile模块 配置Application/Common/Conf/config.php文件 'MODULE_ALLOW_LIST' => 'Home,Mobile' 接下来配置Application/Common/Common/function.php文件 添加isMobile方法 [详见代码] function isMobile(){ // 如果有HTTP_X_WAP_PROF…
最近要使用thinkphp3.2版本的cli模式,手动执的话没有问题,比如php /www/index.php home/article/get 这样没有问题,但是一般用cli模式都是定时任务比较多,这个时候写到定时任务的时候,比如 0 * * * * * php /www/index.php home/article/get 这样就会出现引入ThinkPHP.php失败的问题,这个问题算是比较容易解决的,但是后来还有其他各种报错,经过查看相关核心代码,终于找到无需修改代码,就可以轻易使用cli…
thinkphp3.0增加setInc.setDec方法 thinkphp3.0增加setInc.setDec方法,今天查看thinkphp2.0的方法setInc.setDec时是这样写的: 而对于统计字段(通常指的是数字类型)的更新,系统还提供了 setInc 和 setDec 方法: $User = M( "User" ); // 实例化 User 对象 $User->setInc( 'score','id=5',3 ); // 用户的积分加 3 $User->set…
Outline: 无法获取post请求中的url参数的问题 中文存入数据表后为空字符串 1. 无法获取post请求中的url参数的问题 ThinkPHP3.1.3中,如果提交的post请求中,如果要在url中写入参数,如下面的例子: var url = '/index.php?g=Manager&m=Msgwall&a=changestatus'; var args = { 'id' : id, 'status' : status }; $.post(url, args, function…
今天做一个功能,刚好遇到了一个要下载文件功能的需求,所以把这个基于thinkphp3.2的文件下载功能,描述一下大概的实现方法. 网上有人说用a链接的方法实现,但是这种方法并不安全.所以我们还是用官方提供的方法把. 一般情况下,thinkphp3.2框架是,带了Http.class.php这个类的(如图) 这个类中有一个download的静态方法,这个方法就是实现下载功能的关键方法了. 然后就是在你需要的地方调用这个方法了,Http::download(文件的绝对路径,要显示的文件名);//一般…
$sql="select * from `rjshop_productbase` where `id`=1"; $Model =M();$query=$Model->query($sql);//$query=mysql_query($sql);   在Thinkphp中不能出现这种使用方法 // print_r($query); echo $query[0]['title']; 应该使用thinkphp的写法  就像在控制器中的写法一样. <php> $query=M…
thinphp中前台后台都有互相调用方法,这样可以省去重复内容. 1 2 $hello = new \Admin\Common\Fun\hello(); $hello->hehe(); 调用其他地方的方法同理. 如果是在同控制器里模块名可以省略. 如调用common里面的某个类的方法: 1 2 $hello = new \Common\Fun\hello(); $hello->hehe(); 框架里面提供了跨模块夸.控制器的 A() 方法 1 2 3 4 5 6 7 class GoodsCo…
目录结构 公共模块Common,Home模块,Mobile模块 配置Application/Common/Conf/config.php文件 'MODULE_ALLOW_LIST' => 'Home,Mobile' 接下来配置Application/Common/Common/function.php文件 添加isMobile方法 [详见代码段1] function isMobile(){ // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER[…
数据分页 复制本页链接 opensns 通常在数据查询后都会对数据集进行分页操作,ThinkPHP也提供了分页类来对数据分页提供支持. 下面是数据分页的两种示例. 第一种:利用Page类和limit方法 $User = M('User'); // 实例化User对象 $count = $User->where('status=1')->count();// 查询满足要求的总记录数 $Page = );// 实例化分页类 传入总记录数和每页显示的记录数(25) $show = $Page->…
注意,清除Runtime,就是清除缓存,很重要,妹的,调试了一下午,总是加上Home目录分组就找不到页面,直接放到action下就行,原来是缓存搞得鬼,另外要在入口文件开启‘APP_DEBUG’ 在ThinkPHP3.0里使用分组后,按照手册路径无法正常访问的解决办法: 检查Conf目录下是否存在config.php,由于分组的原因,常常会将config.php文件放到各个分组文件夹,而忽略了Conf本身的config.php同样要求存在. 如果有公共 config 文件的话,所有的config…
从模板传参到控制器 模板中代码: <volist name="list" id="vo"> <a href="__CONTROLLER__/words?id={$vo.id}">{$vo.title}<br/></a> <volist/> 控制器里的代码: $Tags = M('Tags'); $id = I('get.id');//一个非常重要的部分:用于读取由模板view传来的参数…
protected $_validate=array( array('stu_id','','学号已存在',1,'unique',1), ) 当一次插入多条数据时: 在进行循环 使用create验证时,当数据中某一条数据stu_id重复时,便会触发错误. 并且你会发现从这条数据起后面的数据无论是否重复字段,都会报错,无法进行插入或更新. 是因为在错误验证后,Model.class.php中 Model类$this->error 就会被赋值,并且不会被清空,然后到下一次循环时,$this->er…
在项目开发中,查询数据时经常用到where条件查询来过滤数据: 有时就需要一个input输入框判断多个字段查询,这时候我们就需要使用组合查询方法来实现: 说明:组合查询的主体还是采用数组方式查询,只是加入了一些特殊的查询支持,包括字符串模式查询(_string).复合查询(_complex).请求字符串查询(_query),混合查询中的特殊查询每次查询只能定义一个,由于采用数组的索引方式,索引相同的特殊查询会被覆盖. 具体实现方法如下: 字符串模式查询 数组条件可以和字符串条件(采用_strin…
静态缓存很实用但是有时有些不需要静态缓存,如404页面,第一次访问返回404页面并缓存,第二次换回的状态就是200,属于正常访问,虽然人眼可以看出是404页面,但是搜索引擎不会的,而是把这个页面当成正常页面收录,那么问题就大了,404页面有一千个或更多,搜索引擎会认为你作弊制造大量垃圾内容,而且网站对安全也不利,等等. 解决方法:在404状态码之前将缓存动态关闭 C('HTML_CACHE_ON',false); 1 2 3 4 5 6 7 // 404 public function _404…
其实Thinkphp框架并没有自带备份数据库的功能,但是细心的朋友可能会发现Thinkphp的一套内容管理系统oneThink是有备份数据库和还原数据的功能的. 所以今天我就来聊一聊,oneThink系统里的备份数据库和还原数据. 在Onethink的Admin中的controller目录下有一个database.class.php类文件,这个类中有数据库备份和数据还原,优化表,修复表的方法. 其对应的视图是view中的database下的文件,export.html是数据库备份,import是…
最近在做项目中遇到的一个数据操作add()方法,在不开启debug的模式下会漏掉一些字段没写入数据库. 当时并不知道是这个原因,明明在开发的时候都是没问题的,怎么突然出现这个问题,找了好久都没有头绪,实在没办法只好百度了. 后来在thinkphp的官方论坛上找到了一个解决的方法,说是因为缓存的问题,这时忽然想起了在上线的时候把debug模式关了,果断的去把debug模式打开试了一下 还真是这么回事.但是thinkphp官方并没有给什么解释.解决方法其实也很简单就是将对应应用下runtime目录下…
漏洞详情: 漏洞文件:./ThinkPHP\Library\Think\Db\Driver.class.php 中的 parseOrder方法: 这也是继上次order方法注入之后的修复手段. 可以看到首先判断是否存在ASC或DESC,正是因为这判断,导致了我们可以引入 ( 等禁止的字符,所以导致了绕过过滤进行注入. 漏洞证明: 漏洞demo代码:    public function orderby()     {         $obj = M('user');         $res …
例如:加载七牛上传类(thinkphp自带的) $qiniu = new \Think\Upload\Driver\Qiniu\QiniuStorage($setting['driverConfig']); echo $qiniu->UploadToken($setting['driverConfig']['secretKey'],$setting['driverConfig']['accessKey']);…
$this->redirect('showlist',array(),3,'添加成功'); $this->success('添加成功',U('showlist'),3);…
一.3.2版本以前controller和action的访问方式在3.2版本以前如果Controller=c.Action=a的话,访问规则如下:http://localhost:81/demo1/index.php?/m=c&a=a二.3.2版本的访问方式 在3.2版本中,如果还按以前的方式访问的话,会提示:无法加载模块:Index.如下图所示: 在3.2版本中的正确的访问方式是:http://localhost:81/demo1/index.php/Home/Index/index.…
//删除分类 public function del(){ $cid = I('get.cid'); $cate = M('category')->field('cid,pid')->select(); $cate = $this->son_cate($cate,$cid); $cate[] = $cid;//$cate为一个数组 $where['cid'] = array('in',$cate);//cid在这个数组中, M('category')->where($where)-…
Thinkphp 3.23要连接MSSQL,必须配置下,以下是主要的步骤. 1.要安装Microsoft Drivers for PHP for SQL Server驱动 下载驱动以前,要查看一下php的版本,3.2版本支持php5.4以上. Version 3.2 supports PHP 5.6, 5.5, and 5.4 Version 3.1 supports PHP 5.5 and 5.4 Version 3.0 supports PHP 5.4 下载地址:https://msdn.m…
实现持久登录,即用户在登录时,勾选了"记住我"之后,无论是否关闭浏览器,只要不退出登录,在指定的时间内始终保持登录状态(缺点是在另一台电脑上登录过后,之前那台电脑就不能继续保持登录状态). 首先,持久登陆使用 cookie 实现,但是 cookie 中不能保存用户密码这样重要的信息,即使加密过.解决方案是在用户登录表中新建3个字段identifier:第二身份标识,token:永久登录标识,timeout:永久登录超时时间. +------------+-------------+--…
将LOG_LEVEL允许记录的日志级别设置为空,则不会记录日志…