ThinkPHP php 框架学习笔记


Posted in PHP onOctober 30, 2009

花了两个多钟在看 ThinkPHP 框架,不想太过深入的知道它的所有高深理论。单纯想知道怎么可以用起来,可以快捷的搭建一个网站。所以是有选择的看,二个钟后还是一头雾水。于是决定改变学习策略,上官方论坛看其它高人写的民间教程,果然比官方的通俗易懂多了。http://bbs.thinkphp.cn/forumdisplay.php?fid=6 (官方论坛)

ThinkPHP 有很多函数通过参数拼凑的方式来组合SQL,如下:$list = $test->findall('',$fields,'id desc',$p->firstRow.','.$p->listRows);虽然这样的拼凑的方式简化了我们 sql 语句,但这也要求我们要记住很多函数方法,我并不想去记太多这样的东西,觉得有时还不如直接写一条完整的 sql 来得简单。不知ThinkPHP里有没有直接写 sql 后执行select 查询的函数方法? 后来得知 Model.class.php 里面有一个方法 public function query($sql) 可以达到我想要的要求!在做分页时就是用query方法跳过了使用 findall 方法实现了分页功能。

看了例子和教程都是对单表操作的,可很多情况下我们要用到多表联合操作。如多表联合查询,这个时候又应该怎样做呢?ThinkPHP 已经考虑到这个问题,已经很贴心的帮我们安排了关联查询和关联操作。这些我都嫌弃过于麻烦!其实灵活运用这个框架里面的一些基本的函数方法,就可以达到关联查询和关联操作。没必要记忆一大堆乱七八糟的东西。

数据分页是经常要用到的一项功能,TP这方面做得还算挺简单。在网上找了一个教程( http://bbs.phpchina.com/thread-52813-1-1.html ),本以为参考这个教程写出一个TP分页程序应该很简单的事。没想到还是颇费了一番周折!

 ①     一开始是遇到 Fatal error:  Class 'Think' not found in….. 的错误提示,在网上找了一通才知道是缺少了一个扩展类库。后来在官方网站下载了相应的文件。

 ②     扩展类库有了,没提示错误了,可还是不能正确显示出想要的结果!查看“页面Trace信息”,原来是SQL有问题 SELECT COUNT() AS tp_count FROM `think_demo` LIMIT 1,分析得出教程的这句$count = $test->count('','id') 代码有问题,改成 $count = $test->count('id') 终于看到上一页下一页的超链接了。尽信书不如无书!

 ③     用教程的 $list = $test->findall('',$fields,'id desc',$p->firstRow.','.$p->listRows); 这句代码我怎么也得不到想要的结果,我也不想去深入了解 findall 方法的各个参数的使用方法。于是改成 $list = $test->query("select $fields from think_demo order by id desc limit $p->firstRow,$p->listRows") 。再运行,这次终于把分页搞掂出来了!

PHP 相关文章推荐
php 文件上传系统手记
Oct 26 PHP
PHP源码之explode使用说明
Aug 05 PHP
php5.5新数组函数array_column使用
Jul 08 PHP
php生成mysql的数据字典
Jul 07 PHP
PHP实现登陆表单提交CSRF及验证码
Jan 24 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
May 23 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
php无限极分类实现方法分析
Jul 04 PHP
php使用yield对性能提升的测试实例分析
Sep 19 PHP
PHP递归统计系统中代码行数
Sep 19 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
PHP论坛实现积分系统的思路代码详解
Jun 01 PHP
php pack与unpack 摸板字符字符含义
Oct 29 #PHP
php 显示指定路径下的图片
Oct 29 #PHP
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
Oct 29 #PHP
PHP 简单日历实现代码
Oct 28 #PHP
php 网页游戏开发入门教程一(webgame+design)
Oct 26 #PHP
php 文件上传系统手记
Oct 26 #PHP
php后台程序与Javascript的两种交互方式
Oct 25 #PHP
You might like
德生9700DX电路分析
2021/03/02 无线电
解析php curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
php开发工具有哪五款
2015/11/09 PHP
PHP扩展框架之Yaf框架的安装与使用
2016/05/18 PHP
php版微信自动获取收货地址api用法示例
2016/09/22 PHP
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
JS hashMap实例详解
2016/05/26 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
详解nodeJS之二进制buffer对象
2017/06/03 NodeJs
详解Angular操作cookies方法
2018/06/01 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
深入了解Vue动态组件和异步组件
2021/01/26 Vue.js
关于element的表单组件整理笔记
2021/02/05 Javascript
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
[01:33:14]LGD vs VP Supermajor 败者组决赛 BO3 第二场 6.10
2018/07/04 DOTA
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
pandas重新生成索引的方法
2018/11/06 Python
python xpath获取页面注释的方法
2019/01/14 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
Python修改列表值问题解决方案
2020/03/06 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
前端使用canvas生成盲水印的加密解密的实现
2020/12/16 HTML / CSS
Java语言程序设计测试题选择题部分
2014/04/03 面试题
高中毕业自我鉴定范文
2013/10/02 职场文书
医学毕业生自荐信
2013/10/11 职场文书
小学生读书笔记范文
2015/06/30 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
实战Python爬虫爬取酷我音乐
2022/04/11 Python