兄弟连thinkphp笔记.docx
- 文档编号:30755708
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:41
- 大小:34.66KB
兄弟连thinkphp笔记.docx
《兄弟连thinkphp笔记.docx》由会员分享,可在线阅读,更多相关《兄弟连thinkphp笔记.docx(41页珍藏版)》请在冰豆网上搜索。
兄弟连thinkphp笔记
Thinkphp
1.配置gvim
Ø打开安装目录下的_vimrc文件,添加
✧setnu!
显示行数
✧colorschemedarkblue背景颜色设置为深蓝色
Øgvim配置不自动生成备份文件
默认情况下用gVim编辑文件时,会自动生成带~的备份文件。
如果不想在编辑文件时自动生成备份文件的话,可以这么做:
打开gVim安装目录下的vimrc_example.vim,将其中的如下部分中的else语句用引号注释掉:
ifhas("vms")
setnobackup"donotkeepabackupfile,useversionsinstead
else
setbackup"keepabackupfile
即将上面四句改为:
ifhas("vms")
setnobackup"donotkeepabackupfile,useversionsinstead
"else
"setbackup"keepabackupfile
里,else部分用双引号注释掉即可。
setbackup是设置使用自动生成备份文件的命令。
Øwindows上gvim的编码设置
Windows系统默认的编码是cp936,所以用gvim一打开文件,默认是用gb2312编码打开的。
这导致很多时候打开的文件是乱码,不能正常显示,那要怎么解决这个问题呢?
很简单,看下面的设定:
打开gvim,到菜单栏找到“编辑”,在下拉菜单找到“启动设定”
点击“启动设定”进去,你会看到相应的配置文件
在文件的末尾加入如下设定:
setencoding=utf-8
setfileencodings=utf-8,chinese,latin-1
ifhas("win32")
setfileencoding=chinese
else
setfileencoding=utf-8
endif
source$VIMRUNTIME/delmenu.vim
source$VIMRUNTIME/menu.vim
languagemessageszh_CN.utf-8
保存后退出gvim,重新启动,惊喜出现了,乱码不见了,是不是很简单,可以动手试一试了!
2.配置项目文件(__ROOT__\Home\Conf\config.php)
'URL_PATHINFO_DEPR'=>'-',//修改URL的分隔符
'TMPL_L_DELIM'=>'<{',//修改左定界符
'TMPL_R_DELIM'=>'}>',//修改右定界符
'DB_TYPE'=>'mysql',//设置数据库类型
'DB_HOST'=>'localhost',//设置主机
'DB_NAME'=>'thinkphp',//设置数据库名
'DB_USER'=>'root',//设置用户名
'DB_PWD'=>'',//设置密码
'DB_PORT'=>'3306',//设置端口号
'DB_PREFIX'=>'tp_',//设置表前缀
'DB_DSN'=>'mysql:
//root:
@localhost:
3306/thinkphp',//使用DSN方式配置数据库信息
'SHOW_PAGE_TRACE'=>true,//开启页面Trace
'TMPL_TEMPLATE_SUFFIX'=>'.html',//更改模板文件后缀名
'TMPL_FILE_DEPR'=>'_',//修改模板文件目录层次
'TMPL_DETECT_THEME'=>true,//自动侦测模板主题
'THEME_LIST'=>'your,my',//支持的模板主题列表
'TMPL_PARSE_STRING'=>array(//添加自己的模板变量规则
'__CSS__'=>__ROOT__.'/Public/Css',
'__JS__'=>__ROOT__.'/Public/Js',
),
'LAYOUT_ON'=>true,//开启模板渲染
'URL_CASE_INSENSITIVE'=>true,//url不区分大小写
'URL_HTML_SUFFIX'=>'html|shtml|xml',//限制伪静态的后缀
'APP_GROUP_LIST'=>'Home,Admin',//项目分组设定
'DEFAULT_GROUP'=>'Home',//默认分组
3.项目配置(__ROOT__\index.php)
php
//1.确定应用名称Home
define('APP_NAME','Home');
//2.确定应用路径
define('APP_PATH','./Home/');
//3.开启调试模式
define('APP_DEBUG',true);
//4.应用核心文件
require'./ThinkPHP/ThinkPHP.php'
?
>
4.开启调试功能
Ø开启调试功能(在项目文件夹下的index.php中)
define('APP_DEBUG',true);
Ø我们需要设置配置文件(Conf/config.php),开启页面trace
'SHOW_PAGE_TRACE'=>true,//开启页面Trace
5.url的4种访问方式
ØPATHINFO模式--重点!
!
!
!
!
!
http:
//域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2
Ø普通模式
http:
//域名/项目名/入口文件?
m=模块名&a=方法名&键1=值1&键2=值2
ØREWRITE模式
http:
//域名/项目名/模块名/方法名/键1/值1/键2/值2
Ø兼容模式
http:
//域名/项目名/入口文件?
s=模块名/方法名/键1/值1/键2/值2
6.获取url中的参数
$id=$_GET['id'];
7.获取表单中的数据
html中的form表单如下
用户名:
密 码:
验证码:
'+Math.random()"> 获取表单数据的Action对象函数如下 publicfunctiondo_login(){ echo"fasdfasdfsd"; dump($_POST['username']); } 注: 如果表单中的method="get",则上述函数中的$_POST要改为$_GET 8.超链接地址的写法 同项目下的超链接可不写ip地址如要访问项目thinkphp下的UserAction中的delete函数,可写为 id=<{$vo.id}>">delete 但是为了防止因项目名称(thinkphp)的更改,导致系统不能使用,可使用”__URL__”替换”/thinkphp/index.php/User/”,如以上地址改写为 id=<{$vo.id}>">delete 9.将两个字符串合并 $m->where("id=".$_GET['id'])->delete();//也可以是单引号 10.ThinkPHP3的输出 Ø通过echo等PHP原生的输出方式在页面中输出 Ø通过display方法输出,如 想分配变量可以使用assign方法,如在Action中 php //本类由系统自动生成,仅供测试用途 classIndexActionextendsAction{ publicfunctionindex(){ $this->assign('name','yinliang');//给变量name分配值yinliang $this->display();//输出Home\Tpl\Index\index.html } publicfunctionshow(){ echo"show: helloworld! ! ! "; } } ? > 在Home\Tpl\Index\index.html中要访问name变量可以在文件中添加{$name}(修改了左右定界符的则把{,}分别修改为修改后的左右定界符) Ø修改左右定界符(为了防止{$data}与Jquery语法混淆) 休要修改配置文件(Conf/config.php)中的配置项 'TMPL_L_DELIM'=>'<{',//修改左定界符 TMPL_R_DELIM'=>'}>',//修改右定界符 11.ThinkPHP3的模型使用(与数据库链接,操作数据库) Ø配置数据库(在Conf/config.php中配置数据库相关信息) 'DB_TYPE'=>'mysql',//设置数据库类型 'DB_HOST'=>'localhost',//设置主机 'DB_NAME'=>'thinkphp',//设置数据库名 'DB_USER'=>'root',//设置用户名 'DB_PWD'=>'',//设置密码 'DB_PORT'=>'3306',//设置端口号 'DB_PREFIX'=>'tp_',//设置表前缀加表前缀是为了更好的区分表,比如cw_代表财务cg_代表采购,如果没有表前缀,则将tp_去掉即可 也可以使用DSN方法进行配置 'DB_DSN'=>'mysql: //root: @localhost: 3306/thinkphp',//使用DSN方式配置数据库信息 Ø如果两种方式同时存在,以DSN方式为优先 Ø在Action的index函数中获取值 publicfunctionindex(){ $m=newModel(User);//记住U大写 $arr=$m->select();//user表中的所有数据都被放到数组$arr中 $this->assign('name',$arr[1]['username']);//将name赋值为数组$arr中下标为//1的元素的username的值 $this->display(); } Ø还有一种简单实用模型的方式 M()等效为newModel(); $m=M('User'); $arr=$m->select(); Ø使用模型的实例可以对数据进行操作,操作的工作一般就是对数据库进行增删改查CURD 增-CCreate$m->add() 删-DDelete$m->delete() 改-UUpdate$m->save() 查-RRead$m->select() Ø模板可以遍历数组 html页面中 <{$vo.id}>----<{$vo.username}>-----<{$vo.sex}> 在Action中的index中给array赋值 publicfunctionindex(){ $m=newModel(User); $arr=$m->select(); $this->assign('array',$arr); $this->assign('name',$arr[1]['username']); $this->display(); } 12.ThinkPHP3.1.2CURD特性 ØThinkPHP3读取数据 对数据的读取Read $m=newModel('User'); $m=M('User'); select $m->select();//获取所有数据,以数组形式返回 find $m->find($id);//获取单条数据 getField(字段名)//获取一个具体的字段值 $arr=$m->where('id=2')->getField('username'); ØThinkPHP3创建数据 对数据的添加Create $m=newModel('User'); $m=M('User'); $m->字段名=值 $m->add(); 返回值是新增的id号 代码示例: publicfunctionadd(){ $m=newModel('User'); $m->username=$_POST['username']; $m->sex=$_POST['sex']; $newId=$m->add(); if($newId>0){ $this->success("Addnewusersuccessfully! ! ! ",index); }else{ $this->error("Addnewuserfailed! ! ! ",index); } } ØThinkPHP3删除数据 $m=M('User'); $m->delete (2);//删除id为2的数据 $m->where('id=2')->delete();//与上面效果相同,也是删除id为2的数据 返回值是受影响行数 代码示例: publicfunctiondelete(){ $id=$_GET['id']; $m=newModel('User'); var_dump($id); //$m->delete(11); $count=$m->where('id='.$_GET['id'])->delete(); if($count>0){ $this->success("Datahavebeendeletesuccessfully! ! ! "); //$this->success("数据删除成功! ! ! "); }else{ $this->error("Theoperationofdeletingdataexiterror! ! ! "); //$this->error("数据删除失败! ! ! "); } } ØThinkPHP3更新数据 $m=M('User'); $data['id']=1; $data['username']='ztz2'; $m->save($data); 返回值是受影响行数 代码示例: publicfunctionupdate(){ $m=newModel('User'); $data['id']=$_POST['id']; $data['username']=$_POST['username']; $data['sex']=$_POST['sex']; $count=$m->save($data); if($count>0){ $this->success("Datahavebeenmodifysuccessfully! ! ! ",index); }else{ $this->error("Theoperationofmodifingdataexiterror! ! ! ",index); } } 13.ThinkPHP3.1.2查询方式 find只能查询一天记录,select可以查询多条记录 Ø普通查询方式 ✧字符串 $arr=$m->where("sex=0andusername='gege'")->find(); ✧数组 $data['sex']=0; $data['username']='gege'; $arr=$m->where($data)->find(); 注意: 这种方式默认是and的关系,如果使用or关系,需要添加数组值 $data['sex']=0; $data['username']='gege'; $data['_logic']='or'; Ø表达式查询方式 $data['id']=array('lt',6); $arr=$m->where($data)->select(); EQ等于 NEQ不等于 GT大于 EGT大于等于 LT小于 ELT小于等于 示例代码: publicfunctionshow(){ $m=newModel('User'); $data['id']=array("LT",25); $arr=$m->where($data)->select(); var_dump($arr); $this->display(); } ✧LIKE模糊查询 $data['username']=array('like','%ge');//查询username以ge结尾的user $data['username']=array('like','%ge%');//查询username包含ge的user $arr=$m->where($data)->select(); ✧NOTLIKE $data['username']=array('notlike','%ge%');//查询username不包含ge的user $arr=$m->where($data)->select(); ✧注意: 如果一个字段要匹配多个通配符 $data['username']=array('like',array('%ge%','%2%','%五%'),'and');//如果没有第三个值,默认关系是or关系 $arr=$m->where($data)->select(); ✧BETWEEN $data['id']=array('between',array(5,7)); $arr=$m->where($data)->select(); //SELECT*FROM`tp_user`WHERE((`id`BETWEEN5AND7)) $data['id']=array('notbetween',array(5,7));//注意,not和between中间一定要有空格 $arr=$m->where($data)->select(); ✧IN $data['id']=array('in',array(4,6,7)); $arr=$m->where($data)->select(); //SELECT*FROM`tp_user`WHERE(`id`IN(4,6,7)) $data['id']=array('notin',array(4,6,7)); $arr=$m->where($data)->select(); //SELECT*FROM`tp_user`WHERE(`id`NOTIN(4,6,7)) Ø区间查询 $data['id']=array(array('gt',4),array('lt',10));//默认关系是and的关系 //SELECT*FROM`tp_user`WHERE((`id`>4)AND(`id`<10)) $data['id']=array(array('gt',4),array('lt',10),'or')//关系就是or的关系 $data['username']=array(array('like','%2%'),array('like','%五%'),'gege','or'); Ø统计查询 ✧count//获取个数 $data['username']=array(array("LIKE","%s%"),array("LIKE","%d%"),array("LIKE","%g%"),"or"); echo$m->where($data)->count(); ✧max//获取最大数 echo$m->max("id"); ✧min//获取最小数 echo$m->min("id"); ✧avg//获取平均数 echo$m->avg("id"); ✧sum//获取总和 echo$m->sum("id"); ØSQL直接查询 ✧query主要数处理读取数据的 `成功返回数据的结果集 失败返回booleanfalse $m=M(); $result=$m->query("select*fromtp_userwhereid>50"); var_dump($result); ✧execute用于更新个写入操作 成功返回影响行数 失败返回booleanfalse $m=M(); $result=$m->execute("insertintotp_user(`username`)values('ztz3')"); var_dump($result); 14.ThinkPHP3.1.2连贯操作 ØPHP中类的构造方法 所有类的构造方法都如下,只是参数可以不一样 function__construct($tableName){ } Ø字符串操作函数 ✧AddSlashes: 字符串加入斜线。 ✧bin2hex: 二进位转成十六进位。 ✧Chop: 去除连续空白。 ✧Chr: 返回序数值的字符。 ✧chunk_split: 将字符串分成小段。 ✧convert_cyr_string: 转换古斯拉夫字符串成其它字符串。 ✧crypt: 将字符串用DES编码加密。 ✧echo: 输出字符串。 ✧explode: 切开字符串。 ✧flush: 清出输出缓冲区。 ✧get_meta_tags: 抽出文件所有meta标记的资料。 ✧htmlspecialchars: 将特殊字符转成HTML格式。 ✧htmlentities: 将所有的字符都转成HTML字符串。 ✧implode: 将数组变成字符串。 ✧join: 将数组变成字符串。 ✧ltrim: 去除连续空白。 ✧md5: 计算字符串的MD5哈稀。 ✧nl2br: 将换行字符转成 ✧Ord: 返回字符的序数值。
。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 兄弟连 thinkphp 笔记