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 09 PHP
杏林同学录(八)
Oct 09 PHP
PHP性能优化准备篇图解PEAR安装
Dec 05 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
Sep 26 PHP
PHP提交表单失败后如何保留已经填写的信息
Jun 20 PHP
ThinkPHP中redirect用法分析
Dec 05 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
Yii多表联合查询操作详解
Jun 02 PHP
PHP实现SMTP邮件的发送实例
Sep 27 PHP
php多进程模拟并发事务产生的问题小结
Dec 07 PHP
PHP面向对象类型约束用法分析
Jun 12 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 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
PHP中常用的转义函数
2014/02/28 PHP
php使用websocket示例详解
2014/03/12 PHP
jQuery+PHP发布的内容进行无刷新分页(Fckeditor)
2015/10/22 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
Laravel中服务提供者和门面模式的入门介绍
2017/11/06 PHP
Javascript Function对象扩展之延时执行函数
2010/07/06 Javascript
JavaScript实现页面实时显示当前时间的简单实例
2013/07/20 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
细说webpack源码之compile流程-入口函数run
2017/12/26 Javascript
深入浅析angular和vue还有jquery的区别
2018/08/13 jQuery
JS块级作用域和私有变量实例分析
2019/05/11 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
google广告之另类js调用实现代码
2020/08/22 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
JavaScript用document.write()输出换行的示例代码
2020/11/26 Javascript
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
python实现备份目录的方法
2015/08/03 Python
HTML5实现Notification API桌面通知功能
2016/03/02 HTML / CSS
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
大学生专业个人学习的自我评价
2013/10/26 职场文书
软件工程专业推荐信
2013/10/28 职场文书
庆八一活动方案
2014/01/25 职场文书
标准化管理实施方案
2014/02/25 职场文书
公司任命书模板
2014/06/06 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
pandas:get_dummies()与pd.factorize()的用法及区别说明
2021/05/21 Python
SQL语法CONSTRAINT约束操作详情
2022/01/18 MySQL
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS