兄弟连thinkphp笔记Word格式文档下载.docx
《兄弟连thinkphp笔记Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《兄弟连thinkphp笔记Word格式文档下载.docx(34页珍藏版)》请在冰豆网上搜索。
,//修改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__'
/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'
'
);
//2.确定应用路径
APP_PATH'
./Home/'
//3.开启调试模式
APP_DEBUG'
true);
//4.应用核心文件
require'
./ThinkPHP/ThinkPHP.php'
>
4.开启调试功能
开启调试功能(在项目文件夹下的index.php中)
define('
我们需要设置配置文件(Conf/config.php),开启页面trace
5.url的4种访问方式
PATHINFO模式--重点!
!
http:
//域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2
普通模式
//域名/项目名/入口文件?
m=模块名&
a=方法名&
键1=值1&
键2=值2
REWRITE模式
//域名/项目名/模块名/方法名/键1/值1/键2/值2
兼容模式
//域名/项目名/入口文件?
s=模块名/方法名/键1/值1/键2/值2
6.获取url中的参数
$id=$_GET['
id'
];
7.获取表单中的数据
html中的form表单如下
formmethod="
post"
action="
__URL__/do_login"
用户名:
inputtype="
text"
name="
username"
br>
密&
nbsp;
&
码:
password"
验证码:
code"
imgsrc="
__APP__/Public/verify"
onClick="
this.src=this.src+'
+Math.random()"
<
submit"
value="
提交"
/form>
获取表单数据的Action对象函数如下
publicfunctiondo_login(){
echo"
fasdfasdfsd"
;
dump($_POST['
username'
]);
}
注:
如果表单中的method="
get"
则上述函数中的$_POST要改为$_GET
8.超链接地址的写法
同项目下的超链接可不写ip地址如要访问项目thinkphp下的UserAction中的delete函数,可写为
ahref="
/thinkphp/index.php/User/delete?
id=<
{$vo.id}>
delete<
/a>
但是为了防止因项目名称(thinkphp)的更改,导致系统不能使用,可使用”__URL__”替换”/thinkphp/index.php/User/”,如以上地址改写为
__URL__/delete?
9.将两个字符串合并
$m->
where("
id="
.$_GET['
])->
delete();
//也可以是单引号
10.ThinkPHP3的输出
通过echo等PHP原生的输出方式在页面中输出
通过display方法输出,如
想分配变量可以使用assign方法,如在Action中
//本类由系统自动生成,仅供测试用途
classIndexActionextendsAction{
publicfunctionindex(){
$this->
assign('
name'
yinliang'
//给变量name分配值yinliang
$this->
display();
//输出Home\Tpl\Index\index.html
}
publicfunctionshow(){
show:
helloworld!
!
}
在Home\Tpl\Index\index.html中要访问name变量可以在文件中添加{$name}(修改了左右定界符的则把{,}分别修改为修改后的左右定界符)
修改左右定界符(为了防止{$data}与Jquery语法混淆)
休要修改配置文件(Conf/config.php)中的配置项
11.ThinkPHP3的模型使用(与数据库链接,操作数据库)
配置数据库(在Conf/config.php中配置数据库相关信息)
//设置表前缀加表前缀是为了更好的区分表,比如cw_代表财务cg_代表采购,如果没有表前缀,则将tp_去掉即可
也可以使用DSN方法进行配置
如果两种方式同时存在,以DSN方式为优先
在Action的index函数中获取值
$m=newModel(User);
//记住U大写
$arr=$m->
select();
//user表中的所有数据都被放到数组$arr中
$this->
$arr[1]['
//将name赋值为数组$arr中下标为//1的元素的username的值
还有一种简单实用模型的方式
M()等效为newModel();
$m=M('
User'
使用模型的实例可以对数据进行操作,操作的工作一般就是对数据库进行增删改查CURD
增-CCreate$m->
add()
删-DDelete$m->
delete()
改-UUpdate$m->
save()
查-RRead$m->
select()
模板可以遍历数组
html页面中
volistname=’array’id='
vo'
<
----<
{$vo.username}>
-----<
{$vo.sex}>
br/>
/volist>
开启trace:
conf文件:
true
在Action中的index中给array赋值
publicfunctionindex(){
array'
$arr);
12.ThinkPHP3.1.2CURD特性
ThinkPHP3读取数据
对数据的读取Read
$m=newModel('
select
//获取所有数据,以数组形式返回
find
find($id);
//获取单条数据
getField(字段名)//获取一个具体的字段值
where('
id=2'
)->
getField('
ThinkPHP3创建数据
对数据的添加Create
字段名=值
add();
返回值是新增的id号
代码示例:
publicfunctionadd(){
$m=newModel('
$m->
username=$_POST['
sex=$_POST['
sex'
$newId=$m->
if($newId>
0){
$this->
success("
Addnewusersuccessfully!
index);
}else{
error("
Addnewuserfailed!
ThinkPHP3删除数据
$m=M('
delete
(2);
//删除id为2的数据
//与上面效果相同,也是删除id为2的数据
返回值是受影响行数
publicfunctiondelete(){
$id=$_GET['
var_dump($id);
//$m->
delete(11);
$count=$m->
id='
if($count>
Datahavebeendeletesuccessfully!
//$this->
数据删除成功!
Theoperationofdeletingdataexiterror!
数据删除失败!
ThinkPHP3更新数据
$data['
]=1;
]='
ztz2'
save($data);
publicfunctionupdate(){
$data['
]=$_POST['
Datahavebeenmodifysuccessfully!
Theoperationofmodifingdataexiterror!
}
13.ThinkPHP3.1.2查询方式
find只能查询一天记录,select可以查询多条记录
普通查询方式
✧字符串
$arr=$m->
sex=0andusername='
gege'
find();
✧数组
$data['
]=0;
$arr=$m->
where($data)->
注意:
这种方式默认是and的关系,如果使用or关系,需要添加数组值
_logic'
or'
表达式查询方式
]=array('
lt'
6);
EQ等于
NEQ不等于
GT大于
EGT大于等于
LT小于
ELT小于等于
示例代码:
]=array("
LT"
25);
var_dump($arr);
✧LIKE模糊查询
like'
%ge'
//查询username以ge结尾的user
$data['
%ge%'
//查询username包含ge的user
$arr=$m->
✧NOTLIKE
notlike'
//查询username不包含ge的user
✧注意:
如果一个字段要匹配多个通配符
array('
%2%'
%五%'
),'
and'
//如果没有第三个值,默认关系是or关系
✧BETWEEN
between'
array(5,7));
//SELECT*FROM`tp_user`WHERE((`id`BETWEEN5AND7))
notbetween'
//注意,not和between中间一定要有空格
✧IN
in'
array(4,6,7));
//SELECT*FROM`tp_user`WHERE(`id`IN(4,6,7))
notin'
//SELECT*FROM`tp_user`WHERE(`id`NOTIN(4,6,7))
区间查询
]=array(array('
gt'
4),array('
10));
//默认关系是and的关系
//SELECT*FROM`tp_user`WHERE((`id`>
4)AND(`id`<
10))
10),'
)//关系就是or的关系
),array('
统计查询
✧count//获取个数
]=array(array("
LIKE"
"
%s%"
),array("
%d%"
%g%"
),"
or"
echo$m->
count();
✧max//获取最大数
max("
id"
✧min//获取最小数
min("
✧avg//获取平均数
avg("
✧sum//获取总和
sum("
SQL直接查询
✧query主要数处理读取数据的
`成功返回数据的结果集
失败返回booleanfalse
$m=M();
$result=$m->
query("
select*fromtp_userwhereid>
50"
var_dump($result);
✧execute用于更新个写入操作
成功返回影响行数
execute("
insertintotp_user(`username`)values('
ztz3'
)"
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哈稀。