数据库中的内容:

ThinkPhp框架对“数据库”的基本操作,thinkphp框架

框架有时会用到数据库的内容,在”ThinkPhp框架知识”的那篇小说中涉及过,以后那篇小说详细的叙说下。

数据库的操作,无疑就是一连数据库,然后对数据库中的表张开各样查询,然后就是对数据的增删改的操作,一步步的叙述一下框架对数据库的操作

想要操作数据库,第3步必然是要:链接数据库

一、链接数据库

(1)找到模块文件夹中的Conf文件夹,然后开始展览编制config.php文件

自家那边是那般的公文路线

4503.com 1

(二)张开那么些config.php文件,然后找到父类配置文件convention.php文件,将有关”数据库”的一些复制粘贴到config.php配置文件中

1 2 3 4 5 6 7 8 9 /* 数据库设置 */    'DB_TYPE'               =>  '',     // 数据库类型    'DB_HOST'               =>  ''// 服务器地址    'DB_NAME'               =>  '',          // 数据库名    'DB_USER'               =>  '',      // 用户名    'DB_PWD'                =>  '',          // 密码    'DB_PORT'               =>  '',        // 端口    'DB_PREFIX'             =>  '',    // 数据库表前缀    'DB_FIELDS_CACHE'       =>  true,        // 启用字段缓存(开发时这个要写成false)

下边是本人的数据库连接内容

1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php     return array(     //'配置项'=>'配置值'           /* 数据库设置 */     'DB_TYPE'               =>  'mysql',     // 数据库类型       'DB_HOST'               =>  'localhost'// 服务器地址       'DB_NAME'               =>  'test3',          // 数据库名       'DB_USER'               =>  'root',      // 用户名       'DB_PWD'                =>  '123',          // 密码       'DB_PORT'               =>  '3306',        // 端口       'DB_PREFIX'             =>  '',       // 数据库表前缀     'DB_FIELDS_CACHE'       =>  false,    // 启用字段缓存(开发时这个要是false) );

连日来成功后,然后就是新建立模型型文件了

 

二、新建立模型型文件(具体内容看ThinkPhp框架知识)

(1)找到模块文件夹中的Model文件夹,然后在那一个文件夹新建立模型型文件

a)         model本人就是二个类公事

b)        数据库中的每种数据表都对应叁个model模型文件

c)         最轻易易行的多少model模型类

和谐的模型文件

1 2 3 4 5 6 7 <?php namespace Home\Model;   //命名空间的写法 use Think\Model;          //使用模型 class InfoModel extends Model {       }

 (二)看下那么些数据模型

作者们能够再调控器文件夹中开始展览编写制定调整文件,这里有了1个决定文件,笔者就用那么些了

4503.com 2

开荒调节文件,然后写个格局,这里名称叫ceshi()

1 2 3 4 5 6 public function ceshi() {   $info new \Home\Model\InfoModel();  //造新对象,这里是Info模型   var_dump($info);  //输出一下,看下结果           }

出口看一下结出,注意这里地址栏的写法(在框架知识中早已介绍过了肆中走访方式了):

那是本身的渠道:  
  4503.com 3

上边是应和的模子数据:

4503.com 4

 

 3、对数据库实行种种查询(上边的是ThinkPHP模型基础类提供的“连贯操作方法”连贯操作方法)

能够利用那些调控文件中的方法,就一贯在那几个主意中写了

1 2 3 4 5 6 public function ceshi() {   $info new \Home\Model\InfoModel();  //造新对象,这里是Info模型   //下面是数据库操作           }

 

(壹)查询表中的全数数据(方法:select())

回去的2维数组(关联的)
回去的多少里面包车型地铁字段名称是小写,这样做数据库时尽量是小写的

例如:

1 2 $arr $info->select(); var_dump($arr);

看下是还是不是查询的数据库中装有剧情

4503.com 5   

数据库中的内容:

   4503.com 6

 

(2)查询一条数据(方法:find())

 例如:

1 $arr $info->find("p002");<br>var_dump($arr);

那是查询的:代号是”p00二”的新闻,如下:

4503.com 7

select()方法也是能够查询一条或是多条数据,如下:

1 2 $arr $info->select("p001,p002"); var_dump($arr);

那是查询的:代号是”p00一”和”p00二”的消息,如下:

4503.com 8

 

(三)条件查询数据(方法:where())

1 $arr $info->where("code='p003'")->select();<br>var_dump($arr);  

 那是查询的原则:代号是p003的拥有新闻

4503.com 9

 

(4)切换数据表(方法:table())

例如:

1 $arr $info->table("nation")->select();<br>var_dump($arr);

那是却换了一张nation表:

4503.com 10

 

(5)采纳操作的字段(方法:田野同志())

例如:

1 $arr $info->field("name,sex,birthday")->select();<br>var_dump($arr);

询问字段是:姓名、性别和出生之日的字段

4503.com 11

 

(陆)对数码实行排序(方法:order())

例如:

1 2 $arr $info->order("code desc")->select(); var_dump($arr);

那是对code举办降序排列

4503.com 12

 

(七)分页查询数据(方法:limit()和page())

例如:limit()

1 2 $arr $info->limit("2,2")->select(); var_dump($arr);

那是显得的第二页的剧情:

4503.com 13

例如:page()

1 2 $arr $info->page("2,2")->select(); var_dump($arr);

那一个也是显示的第三页的从头到尾的经过:

4503.com 14

注意:

limit()和page()的不一致之处:后者的参数是一贯展现“第几页”,“几条”

 

(捌)对数码举行分组(方法:table())

例如:

1 2 $arr $info->table("car")->field("max(price)")->group("brand")->select(); var_dump($arr);

这是询问的car表中的最大价格,并且依照brand的字段举办分组

4503.com 15

例如:

1 2 $arr $info->table("car")->field("max(price)")->group("brand")->having("max(price)>60")->select(); var_dump($arr);

那是地点的老大查询,然而加了一个原则正是价格超越60的

4503.com 16

 

(玖)链接查询数据库(方法:join())

例如:

1 2 $arr $info->field("info.code as '代号', info.name as '姓名',nation.name as '民族'")->join("nation on info.nation=nation.code")->select(); var_dump($arr);

那是链接查询的两张表(粤语的地方最终用字符,因为后边要用到他的值)

4503.com 17

 

(10)去重(distinct())

例如:

1 2 $arr $info->table("car")->distinct(true)->field("brand")->select(); var_dump($arr);

那是询问的数据库中重复的字段

4503.com 18

 

到此,就是有关怎么总是数据库和各类查询数据库中的数据,这是基本操作,上边正是对数据的增进、修改、删除操作了

 

肆、对数据表增添数据(方法:add())

(1)上1篇已经讲过链接数据库了,继继续展览开对数据库的操作,照旧用调节器文件中的HomeController.class文件

看下数据库表中的存活数量,然后在拓展加多数据

4503.com 19

累加数量有三种办法

内部第1种和第二种的拉长数据格局毫无决断语句,直接找到表然后实行编辑就可以

1 2 3 4 public function tianjia() {     $n = M("nation");   <br>  //下面就是第一种和第二种添加的方式 }      

一.采纳数组方式丰盛

1 2 3 4 //1.使用数组方式添加 $arr array("Code"=>"n006","Name"=>"哈喽");  //其中的字段名要和数据库中的要保持一致 $n->add($arr);  //进行添加数据,方法add()         

运作一下以此法子,注意地址栏要动用正确的门径(那是本人的门路): 

看下数据库表中是或不是增加了数码

4503.com 20

 

2.AR方式

赋一下值(给字段赋值然后在加上)

1 2 3 4 //2.AP方式 $n->Code = "n007";  //赋值的方式将每个字段赋值 $n->Name = "你好"; $n->add();  //最后用添加方法的时候里面就不用写参数了

运作看下数据库表中的浮动

4503.com 21

 

叁.电动搜聚表单(最简单易行的法子)

注意事项:
(壹)表单中的name要和数据库中的字段名联合
(2)多余的表单可以自动取名,只要不和数据库字段名一样就足以

就要思索这些操作方法要促成如何逻辑,借使多个逻辑

一.体现页面
4503.com,二.增多数量

此处能够透过if推断语句来完成:如若是空的,就显示页面

1 2 3 4 if(empty($_POST)) {     $this->show();     //显示页面 }

再不就是充分多少的代码,一步步的来,先说展现页面,既然是突显页面将要要视图像和文字件夹增添突显页面了

  一.1.张开View文件夹,然后新建文件夹,名字和调节器的名字同样

4503.com 22

  一.二.然后在Home文件夹中新建3个人作品显示页面,这里本身叫的是tianjia.html,展开这么些页面,实行编辑要突显的故事情节

此地作者是用的表单成分来写的展现页面

1 2 3 4 5 6 <form action="__ACTION__" method="post">  <!--这个中的ation属性使用的__ACTION__(当前操作方法),也可以使用__SELF__(自身的操作方法)系统常量--><br>  <!--注意下面的name名字要和数据中的保持一致-->     <div>代号:<input type="text" name="Code" /></div>     <br />     <div>名称:<input type="text" name="Name" /></div>     <input type="submit" value="添加" /> </form>

注意:

这样,大家走访一下,看看是还是不是能够看到这些页面  

开拓浏览器,在地点栏中输入访问方法

看下那几个页面包车型大巴来得效果

4503.com 23

显示页面成功后就是增加数据的编写制定了

  2.1以此正是决断中的“不然”的语句了

1 2 3 4 5 6 else {     $n = M("nation");       $n->create();   //自动收集表单数据     $n->add();  //添加到数据库中 }          

运行一下看下是否足以活动收罗表单内容

(壹)第3步还尚无内容时,自然是显得页面了

4503.com 24

(二)加多一下故事情节,数据库表中未有的数量,单击提交按键

4503.com 25

(3)看下数据库是否现已增加进去了

4503.com 26

 

若是是增添错误想要修改数据,可以如此

先采访表单成分,然后感到哪一项不对,找到那1项然后修改就足以了

1 2 3 $n->create();   //先收集 $n->Name = "hhah";    //修改名字这个吧 $n->add();   //再添加到数据库

看下运转效果:

先收集表单,单击提交按键

4503.com 27

在看修改的内容,是修改名称这一个改为hhah,看下数据库是还是不是在提交时修改了名称,是的,他改变了

4503.com 28

 

伍、修改数据库中表的数额(方法:save())

骨子里这一个和充足基本上,也是有二种方法

这里也是在HomeController.class文件中一而再编写修章

1 2 3 4 5 public function xiugai() {<br>  $code "n009";  //修改数据当然是用到的主键值     $n = M("nation");   //因为要修改数据,所以要用到数据库,这里调用数据   //下面就是修改的方法 }  

(一)1.依然用if判定一下

1 2 3 if(empty($_POST)) {<br>  $arrt $n->find($code);   //利用find()方式读取一条数据,里面的参数自然就是主键<br>  $this->assign("shuju",$arrt);  //注入变量了,注意这里是$this不是别的<br>  $this->show();      //显示页面 }

二.接下来正是做修改的沙盘页面了,名字就叫xiugai.html吧

1 2 3 4 5 6 <form action="__ACTION__" method="post">     <div>代号:<input type="text" name="Code" value="{$shuju.code}"/></div>   <!--显示的默认值就是上面的二维数组中的shuju-->     <br />     <div>名称:<input type="text" name="Name" value="{$shuju.name}" /></div>     <input type="submit" value="修改" /> </form>

看下结果

4503.com 29

(二)这一个就是修改的“不然”语句了

修改也是有三种艺术

一.数组织承办法

1 2 //1.数组方式 $n->save($_POST);  //修改方法save()

因为早已有了数组,所以直接调用就能够了  

2.AR方式

1 2 3 4 //2.AR方式 $n->Code = $_POST["Code"]; $n->Name = $_POST["Name"]; $n->save();

 

3.活动采撷表单

1 2 3 //3.自动收集表单 $n->create();   //自动收集表单数据 $n->save();

  三.一退换一下数目试试

4503.com 30

  3.二将方面包车型客车值修改为下图所示,然后单击“修改”按键

4503.com 31

  3.三看下数据库是还是不是修改了,原来是hhah,修改为:阿昌族

4503.com 32

修改成功了~~

 

6、删除数据库表中的数量(方法:delete())

同等的三番五次写二个主意,这里就叫shanchu()吧

1 2 3 4 5 public function shanChu() {     $n = M("nation");     $n->delete("n008");  //删除的是n008的数据,删除的方法:delete() }

看下数据库那一个n008的数码  

4503.com 33

实践一下以此办法,然后看下数据库中的数据

4503.com 34

n00八的那条数据现已被删去了

 

到未来对此数据库的修改数据就早已成功了,日常的增删改功效就那几个内容

亟需牢记:注意事项

增进修改都是二种艺术,还是同样的点子(方法分歧而已)

 

上面都是有关数据库的基本操作,查询,增删改操作,想要操作数据库,第1点就是要三番五次数据库!!

框架有时会用到数据库的剧情,在”ThinkPhp框架知识”的那篇小说中涉及过,今后这篇随笔详…

大家得以再调整器文件夹中实行编辑调整文件,这里有了3个决定文件,笔者就用那个了

1
2
3
4
5
6
7
8
9
/* 数据库设置 */
   'DB_TYPE'               =>  '',     // 数据库类型
   'DB_HOST'               =>  ''// 服务器地址
   'DB_NAME'               =>  '',          // 数据库名
   'DB_USER'               =>  '',      // 用户名
   'DB_PWD'                =>  '',          // 密码
   'DB_PORT'               =>  '',        // 端口
   'DB_PREFIX'             =>  '',    // 数据库表前缀
   'DB_FIELDS_CACHE'       =>  true,        // 启用字段缓存(开发时这个要写成false)

 

注意事项:
(一)表单中的name要和数据库中的字段名统1
(2)多余的表单能够自动取名,只要不和数据库字段名同样就足以

4503.com 35

数据库的操作,无疑便是三番五次数据库,然后对数据库中的表实行各样查询,然后就是对数据的增加和删除改的操作,一步步的叙说一下框架对数据库的操作

看下运维效果:

(壹)找到模块文件夹中的Model文件夹,然后在这么些文件夹新建模型文件

这是询问的数据库中重新的字段

修改也是有三种方法

(二)查询一条数据(方法:find())

例如:

 

4503.com 36

4503.com 37

先采访表单成分,然后感到哪1项不对,找到那一项然后修改就足以了

丰裕数据有二种格局

那是链接查询的两张表(中文的地方最终用字符,因为背后要用到她的值)

出口看一下结出,注意这里地址栏的写法(在框架知识中已经介绍过了四中走访格局了):

三番五次成功后,然后正是新建立模型型文件了

(二)那个便是修改的“不然”语句了

能够使用那些调整文件中的方法,就一向在这么些点子中写了

加上修改都以三种方法,照旧师心自用的主意(方法分化而已)

 

  三.2将地方的值修改为下图所示,然后单击“修改”开关

到未来对于数据库的改造数据就已经到位了,不奇怪的增加和删除改功效就像此些内容

这是显示的第三页的内容:

1
2
3
4
5
6
7
<?php
namespace Home\Model;   //命名空间的写法
use Think\Model;          //使用模型
class InfoModel extends Model
{
     
}

4503.com 38

本条也是显得的第三页的始末:

1
2
3
4
5
6
<form action="__ACTION__" method="post">
    <div>代号:<input type="text" name="Code" value="{$shuju.code}"/></div>   <!--显示的默认值就是上面的二维数组中的shuju-->
    <br />
    <div>名称:<input type="text" name="Name" value="{$shuju.name}" /></div>
    <input type="submit" value="修改" />
</form>

(一)上一篇已经讲过链接数据库了,继续张开对数据库的操作,依然用调节器文件中的HomeController.class文件

这是查询的:代号是”p001″和”p00二”的音讯,如下:

(一)一.仍然用if剖断一下

1
2
3
//3.自动收集表单
$n->create();   //自动收集表单数据
$n->save();

 

1
2
//1.数组方式
$n->save($_POST);  //修改方法save()

想要操作数据库,第3步必然是要:链接数据库

 

1
2
$arr $info->page("2,2")->select();
var_dump($arr);
1
2
3
4
5
6
public function ceshi()
{
  $info new \Home\Model\InfoModel();  //造新对象,这里是Info模型
  var_dump($info);  //输出一下,看下结果
         
}

4503.com 39

此间也是在HomeController.class文件中持续编写修章

 例如:

4503.com 40

那是却换了一张nation表:

1
2
$arr $info->limit("2,2")->select();
var_dump($arr);

亟需牢记:注意事项

例如:

1
2
$arr $info->order("code desc")->select();
var_dump($arr);

4503.com 41

将要思量这些操作方法要兑现怎么着逻辑,假设五个逻辑

1
2
3
$n->create();   //先收集
$n->Name = "hhah";    //修改名字这个吧
$n->add();   //再添加到数据库

开垦浏览器,在地方栏中输入访问方法

一.选取数组格局丰硕

n00八的这条数据已经被删除了

先采访表单,单击提交按键

例如:

1
2
$arr $info->table("car")->distinct(true)->field("brand")->select();
var_dump($arr);

 

(二)展开这几个config.php文件,然后找到父类配置文件convention.php文件,将关于”数据库”的一些复制粘贴到config.php配置文件中

(七)分页查询数据(方法:limit()和page())

4503.com 42

4503.com 43

那是上面的老大查询,不过加了一个尺度正是价格超越60的

4503.com 44

 

1
$arr $info->table("nation")->select();<br>var_dump($arr);

6、删除数据库表中的数目(方法:delete())

看下是还是不是询问的数据库中具有内容

一.数组织承办法

  叁.1改换一下多少试试

a)         model自己便是3个类公事

limit()和page()的分裂之处:后者的参数是直接体现“第几页”,“几条”

4503.com 45

1
2
3
4
//1.使用数组方式添加
$arr array("Code"=>"n006","Name"=>"哈喽");  //其中的字段名要和数据库中的要保持一致
$n->add($arr);  //进行添加数据,方法add()
        

例如:

1
2
3
4
5
6
public function ceshi()
{
  $info new \Home\Model\InfoModel();  //造新对象,这里是Info模型
  //下面是数据库操作
         
}

c)         最简易的数量model模型类

1
2
3
4
5
public function xiugai()
{<br>  $code "n009";  //修改数据当然是用到的主键值
    $n = M("nation");   //因为要修改数据,所以要用到数据库,这里调用数据
  //下面就是修改的方法
}  

  壹.2.然后在Home文件夹中新建贰个显得页面,这里本身叫的是tianjia.html,展开这一个页面,进行编辑要体现的故事情节

2.AR方式

 
 4503.com 46

(一)找到模块文件夹中的Conf文件夹,然后举办编写制定config.php文件

(2)增添一下剧情,数据库表中未有的数据,单击提交按钮

例如:

4503.com 47

 

4503.com 48

修改成功了~~

 

注意:

例如:

运作看下数据库表中的成形

select()方法也是足以查询一条或是多条数据,如下:

看下结果

例如:

 

  壹.一.展开View文件夹,然后新建文件夹,名字和调控器的名字同样

要不正是增多数据的代码,一步步的来,先说彰显页面,既然是展现页面将要在视图像和文字件夹加多展现页面了

笔者这边是那般的文件路线

来得页面成功后正是拉长数量的编辑撰写了

那是对code进行降序排列

伍、修改数据库中表的多寡(方法:save())