-
多表查询之table方法 //不推荐使用table,一般查看视图不用表格 1 语法 多表联合查询 table(array('前缀_表名1'=>'别名1','前缀_表名2'=>'别名2',……)) 表名需要加前缀 2 例子 $data=M()->table(array('nk_user'=>'user','mk_userinfo'=>'info')) ->where('user.id=info.user_id')->select(); //因为 table() 中已经将所有的表都做了别名处理,所有此处的 M() 函数是不需要穿参数的查看全部
-
连贯操作之group分组和having方法 1 group分组显示结果,having(不可单独使用)而是配合group使用,作为统计结果的条件限制输出 M("User")->field("score count(*) as total")->having("score >= 20")->group("score")-select();查看全部
-
连贯操作之limit和page方法 1 limit(start,length) 其中start可缺省,默认从第一条开始 例:limit(2,5)//从第2条开始数,取5条数据 2 page(页码,每页数据条数=默认20) 例:page(2,5) //查询第2个页码的数据,每页5条数据查看全部
-
1.语法 field($string,false)【默认状态false】 false 时,查询 $string 中规定的字段 ture 时,过滤 $string 中规定的字段(即取 $string 规定字段 以外的其他字段) 查询多个字段时,$string 中的各字段名 用逗号隔开 2.TP中提供了连续操作方式,如下: //所有的条件方法都是要在 select()方法前使用,条件方法对查询才会起作用. // 只查询user_name,并按id进行降序排序; $data=M('user')->field('user_name',false)->order('id',desc)->select();查看全部
-
//order排序(多个条件用逗号隔开) order(‘字段1 排列方式,字段2 排列方式') $data=M('user')->order('score desc,id asc')->select(); //desc降序排列,asc升序排列查看全部
-
1.按条件删除 $where['id']=3; //条件删除 M('User')->where($where)->delete(); 2.主键值删除 M('User')->delete(3); //delete(主键值);只可以传入主键值,删除主键值对应的那条数据查看全部
-
//更新数据 $updata['score']=60; $where['id']=1; M('User')->where($where)->save($updata)查看全部
-
1直接使用字符串进行查询 $data=M('User')->where('id=11')->select(); 2使用数组的方式进行查询 $where['id']=1; $where['user_name']='xiaohong'; $where['_logic']='or';//默认AND $data=M('User')->where($where)->select(); dump($data); 3表达式查询 $where['字段名']=array(表达式,查询条件); $where['id']=array('gt',13); $where['id']=array('between','12,14'); $where['id']=array('in','12,14'); $where['user_name']=array('like','%hong'); $where['user_name']=array('like',array('%ming','%hong')); $data=M('User')->where($where)->select(); 4区间查询 $where['id']=array(array('gt',12),array('lt',15)); $where['id']=array(array('gt',15),array('lt',12),'or');//默认AND $data=M('User')->where($where)->select(); 5混合用法 尽量不要用混合和字符串查询 $where['id']=array('gt',10);$where['_string']='score>10'; $data=M('User')->where($where)->select(); 6统计用法 $data=M('User')->count();//统计数量 可选 $data=M('User')->max('id');//求最大值 须传入字段名 $data=M('User')->min('id');//求最小值 须传入字段名 $data=M('User')->avg('score');//求平均值 须传入字段名 $data=M('User')->sum('score');//求和 必传入字段名查看全部
-
M('表名')->add(一维数组) M('User')->add(一维数组);//添加一条数据,成功的话返回自增ID值 M('User')->addAll(多维数组);//添加多条数据,成功的话返回插入数据第一条自增ID值,只适用于MySql,且实际运用中较少 echo M()->getLastSql();//查看最后一条执行语句查看全部
-
1.实例化框架基础模型(在 ThinkPHP/Library/Think/Model.class.php 中) $user=new Model('admin’); //参数表:表名、表前缀、数据库连接信息 ;省略的参数会直接调用配置文件中配置的相关数据 $user=M("pro"); //M()方法会直接跳过应用中的模型(不论应用的模块的 Model文件夹 中是否有同名模型类文件[proModel.class.php] ),而去实例化框架基础模型 $data==$user->select(); //数据库查询 dump($data); 2.实例化用户自定义模型(在 Application/模块(Home)/Model 中) $user=new adminModel(); //参数表:表名、表前缀、数据库连接信息 ;省略的参数会直接调用配置文件中配置的相关数据 $user=D("admin");//先找用户自定义模型,找不到会自动切换成M()方法去查找框架基础模型 echo $user->getinfo(); //调用自定义模型类中的方法 3.实例化公共模型(建议在 Application/模块(Home)/Model 中建立,且 公共模型 继承 框架基础模型 ,然后[有需要的]其他用户自定义模型 再继承 此公共模型 , 这样 此公共模型中定义的方法 就可以被 继承他的子模板 共用) $user=new CommonModel(); //公共模型 echo $user->strmake("aaa"); //公共模型->方法 $user=D("User"); //继承公共模型的子模型 /echo $user->strmake("abc"); //子模型->公共模型的方法 4.实例化空模型(方便使用原生的SQL语句) $model=M(); //实例化一个空框架基础模型 $sql="select * from imooc_admin"; $data=$model->query($sql); //query()方法最好只用于读取数据 $model->execute($sql); //execute()方法最好只用于写入数据 update,insert,delete等 [execute()方法返回值为数据表被影响行数,所以不能用来做查询]查看全部
-
//TP框架内置了一个抽象的数据库的访问层,这个访问层封装了特类的数据库操作 //------mysql式数据库连接方法----- 'DB_TYPE'=>'muysql',//数据库类型 'DB_HOST'=>'localhost,localhost1,localhost2',//数据库服务器地址 'DB_NAME'=>'mooc',//数据库名 'DB_USER'=>'root',//数据库用户 'DB_PWD'=>'',//数据库用户密码 'DB_PORT'=>'3306',//数据库端口(默认3306),可以不配置 'DB_PREFIX'=>'mc_',//数据库表前缀 //数据库配置好后,并非立即连接,TP数据库连接是一种惰性连接,只有在实例化时才连接。 //开启主从读写分离,读操作使用从服务器,写操作使用主服务器,这样就能给数据库进行负载均衡 'DB_RW_SEPARATE'=>true, //多个主数据库服务器,localhost,localhost1为主服务器,localhost2为从服务器查看全部
-
TP调试方法: 1.在入口文件中开启调试模式 define('APP_DEBUG',true); //开启调试模式 系统会自动加载框架下ThinkPHP/Conf/debug.php 2.在应用目录下的位置文件夹( Application/Common/Conf )中建立debug.php配置文件;在调试模式下其检测到应用目录中的配置目录( Application/Common/Conf )中有 debug.php 文件存在 其优先级高于 config.php (即 debug.php 中的配置项将覆盖 同目录下的 config.php 中的同名配置项) 在 debug.php 中配置'SHOW_PAGE_TRACE'=>true,显示页面trace信息 当关闭调试模式后 define('APP_DEBUG’,false) TP将停止加载框架下的(ThinkPHP/Conf/) debug.php 文件 与 应用目录下( Application/Common/Conf )的 debug.php 文件 3. 调用trace()方法(在 1,2 配置文成条件下才能使用 trace()方法 ) trace('变量','标签','级别','是否记录日志') 变量: 要显示的变量 标签: 显示变量值时的提示标签 级别: 显示位置(在调试界面的那个选项卡中显示;默认在调试选项卡中显示) 如: $info = '测试信息'; trace($info,'提示’,’SQL’); 则在SQL选项卡中显示 “提示:测试信息” 老师的代码是: trace(‘name’,C(‘name’)); //C(‘name’) 的值为: Donsen@debug 所以在调试选项卡中显示 “Donsen@debug:name” 4. 调用G()方法,获取代码段执行时间(毫秒) (不需要开启调试状态也可以使用) G('run'); for($i=0;$i<100000;$i++){ $count += $i; } echo G('run','end'); //统计从 G('run') 标记的位置到 G('run','end') 标记的位置所用的运行时间和内存占用情况 5.格式化输出变量内容: dump(变量); //是 TP 对 php 内置函数 var_dump() 的改进.查看全部
-
1 不推荐使用if判断标签(原因是condition属性使用php语法),尽量用其他标签替代。 2 实在不行就用php原生语法, <php>php语法</php> (原因异步方式使用的都是php原生语法) <foreach name='person' item='data'> <br /><!-- 比较标签 --> <egt name='data.age' value='18'>{$data.name}已成年<else />{$data.name}未成年</egt> </foreach> <br /> <foreach name='person' item='row' > <!-- {$person[1]['age'] >= 18?"yes":"no"} 二维数组--> {$row['age'] >= 18?"成年":"未成年"} <br/> <!-- 三目运算符 --> </foreach> <php>echo $person[1]['name']</php> <!-- 模板中使用PHP -->查看全部
-
三元运算符,php语法一样,如下: {$num>11?'大于11':'不大于11'}查看全部
-
TP模板引擎之区间标签(in notin between notbetween range:type的标签能是in和notin,between和notbetween) <in name='num' value='1,2,3'>在</in>(判断是否在1,2,3之间) <notin name='num' value='1,2,3'>不在</notin> <in name='num' value='1,2,3'>在<else></else>不在</in> <between name='num' value='1,10'>在</between>(判断是否在1到10之间) <notbetween name='num' value='1,10'>在</notbetween> <between name='num' value='1,10'>在<else></else>不在</between> <range name='num' value='1,2,3' type='in'>在<else></else>不在</range>(type的值在3.1版本中只能为in/notin,而在3.2版本中可以用in/notin/between/notbetween查看全部
举报
0/150
提交
取消