thinkphp之数据库里的操作

#thinkphp框架的使用是通过方法的调用实现的操作

常用到的增删改查操作

在写的过程中有几点注意的地方是:

(1)、在连接中传入的参数(比如<a href="__URL__/create/id/{$vo.id}">)在方法里是通过$_GET['id']来实现得到的

(2)、在form表单中method='post' 方式得到的参数是通过$_POST['id'];的方式得到的

(3)、$this->success("字符串","这里是返回的方法");

(4)、以及增删改查的相关属性
    ####   增
    $m->username='';
    $m->sex='';
    $m->add();      其中这里的返回值是前面的id值,通常通过其的返回值来判断是否添加成功

    ####   删
    $m->where('id=$id')->delete();
    当然也可以是$m->delete($id);

    ####   改
    $m=M('user');
    $data['username']=$_POST['username'];
    $data['sex']=$_POST['sex'];
    $m->save($data);

    ####   查
    $m=M('user');
    $arr=$m->select();   这是查找全部的先关数据
    $arr2=$m->find(2);    这是查找单挑相关数据
    $arr3=$m->where('id=$id')->getField('username');   这是查找id为$id 的username的字段

下面是相关的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
public function index(){
$m=M('user');
$arr=$m->select();
$this->assign('data',$arr);
$this->display();
}
/*数据库里的删除出方法*/
/*
/thinkphp/index.php/User/del/id/{$vo.id}
*/
public function del(){
$m=M('user');
$id=$_GET['id'];
$count=$m->delete($id);
if($count>0){
$this->success("数据删除成功");
}else{
$this->error("数据删除失败");
}
}
/*修改页面的显示部分*/
/*
/thinkphp/index.php/User/del/id/{$vo.id}
*/
public function modify(){
$id=$_GET['id'];
$m=M('user');
$arr=$m->select();
$this->assign('data',$arr);
$this->display();
}
/*数据的更新部分*/
public function update(){
$m=M('user');
$data['id']=$_POST['id'];
$data['username']=$_POST['username'];
$data['sex']=$_POST['sex'];
$m->save($data);
if($co unt>0){
$this->success("数据修改成功",'index'); /*这里的$this->success('asdfa','index') index是返回index方法下的内容*/
}else{
$this->error("数据修改失败");
}
}
/*添加用户的方法*/
public function add(){
$this->display();
}
public function create(){
$m=M('user');
$m->username=$_POST['username'];
$m->sex=$_POST['sex'];
$idnum=$m->add();
if($idnum>0){
$this->success("数据添加成功",'index');
}else{
$this->error("数据添加失败");
}
}
/*查找方法的实现*/
public function search(){
/*获取post的数据,根据数据组装查询的条件,根据条件从数据库中获取数据*/
if(isset($_POST['username']) && $_POST['username']!=null ){
$where['username']=array('like',"%{$_POST['username']}%");
}
if(isset($_POST['sex']) && $_POST['sex']!=null){
$where['sex']=array('eq','$_POST['sex']');
}
//$where['_logic']='or';
$where['_logic']='and';
$m=M('user');
$arr=$m->where($where)->select();
$this->assign('data',$arr);
$this->display('index');
}
}
?>

查询的几种方式:

$arr=$m->where('sex=0 and username="nuocheng"')->find();

相当于

$data['sex']=0;
$data['user']='nuocheng'; 
$m->where($data)->find();


如果条件里有or的方式查询的话,要在之前的里面添加一个
$data['_logic']='or';

$arr=$m->where('sex=0 and username="nuocheng"')->getField('username')




如果传入条件是含有> <

$data['id']=array('GT',6);  表达的是>6
//$data['id']=array('LT',6) 表达的是<6
$m->where[$data]->select();



模糊查询

$data['username']=array('like','%nuo%');
如果表示多个模糊
是可以在array里面继续添加相关的属性

$data['username']=array('like',array('%nuo%','%cheng%'),'and');
Fork me on GitHub