tp框架知識 之(鏈接數據庫和操作數據)


框架有時會用到數據庫的內容,在"ThinkPhp框架知識"的那篇隨筆中提到過,現在這篇隨筆詳細的描述下。

一、鏈接數據庫

(1)找到模塊文件夾中的Conf文件夾,然后進行編寫config.php文件

我這里是這樣的文件路徑

(2)打開這個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
{
     
}

 (2)看下這個數據模型

我們可以再控制器文件夾中進行編寫控制文件,這里有了一個控制文件,我就用這個了

打開控制文件,然后寫個方法,這里叫做ceshi()

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

輸出看一下結果,注意這里地址欄的寫法(在框架知識中已經介紹過了4中訪問方式了):

這是我的路徑:     

下面是對應的模型數據:

 

 三、對數據庫進行操作(下面的是ThinkPHP模型基礎類提供的“連貫操作方法”連貫操作方法)

可以利用這個控制文件中的方法,就直接在這個方法中寫了

1
2
3
4
5
6
public  function  ceshi()
{
   $info  new  \Home\Model\InfoModel();   //造新對象,這里是Info模型
   //下面是數據庫操作
         
}

 

(1)查詢表中的所有數據(方法:select())

返回的二維數組(關聯的)
返回的數據其中的字段名稱是小寫,這樣做數據庫時盡量是小寫的

例如:

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

看下是不是查詢的數據庫中所有內容

   

數據庫中的內容:

   

 

(2)查詢一條數據(方法:find())

 例如:

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

這是查詢的:代號是"p002"的信息,如下:

select()方法也是可以查詢一條或是多條數據,如下:

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

這是查詢的:代號是"p001"和"p002"的信息,如下:

 

(3)條件查詢數據(方法:where())

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

 這是查詢的條件:代號是p003的所有信息

 

(4)切換數據表(方法:table())

例如:

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

這是卻換了一張nation表:

 

(5)選擇操作的字段(方法:field())

例如:

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

查詢字段是:姓名、性別和生日的字段

 

(6)對數據進行排序(方法:order())

例如:

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

這是對code進行降序排列

 

(7)分頁查詢數據(方法:limit()和page())

例如:limit()

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

這是顯示的第2頁的內容:

例如:page()

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

這個也是顯示的第2頁的內容:

注意:

limit()和page()的不同之處:后者的參數是直接顯示“第幾頁”,“幾條”

 

(8)對數據進行分組(方法:table())

例如:

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

這是查詢的car表中的最大價格,並且根據brand的字段進行分組

例如:

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

這是上面的那個查詢,但是加了一個條件就是價格大於60的

 

(9)鏈接查詢數據庫(方法: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 );

這是鏈接查詢的兩張表(漢語的地方最后用字符,因為后面要用到他的值)

 

(10)去重(distinct())

例如:

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

這是查詢的數據庫中重復的字段

 

 

以上就是框架中連貫操作方法中常用的到幾個,還有開頭怎么鏈接數據庫

 

(轉)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM