讀取數據
在開始以前,咱們首先在數據庫thinkphp中建立一個think_data數據表(以mysql數據庫爲例):
CREATE TABLE IF NOT EXISTS `think_data`(
`id`int(8)unsigned NOT NULL AUTO_INCREMENT,
`data` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
INSERT INTO `think_data`(`id`,`data`) VALUES
(1,'thinkphp'),
(2,'php'),
(3,'framework');
若是咱們須要讀取數據庫中的數據,就須要在模塊配置文件中添加數據庫鏈接信息以下:
//
添加數據庫配置信息
'DB_TYPE'=>'mysql',// 數據庫類型
'DB_HOST'=>'127.0.0.1',// 服務器地址
'DB_NAME'=>'thinkphp',// 數據庫名
'DB_USER'=>'root',// 用戶名
'DB_PWD'=>'',// 密碼
'DB_PORT'=>3306,// 端口
'DB_PREFIX'=>'think_',// 數據庫表前綴
'DB_CHARSET'=>'utf8',// 數據庫字符集
接下來,咱們修改下控制器方法,添加讀取數據的代碼:
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller{
public function index(){
$Data = M('Data');// 實例化Data數據模型
$result = $Data->find(1);
$this->assign('result',$result);
$this->display();
}
}
這裏用到了M函數,是ThinkPHP內置的實例化模型的方法,並且用M方法實例化模型不須要建立對應的模
型類,你能夠理解爲M方法是直接在操做底層的Model類,而Model類具有基本的CURD操做方法。
M('Data') 實例化後,就能夠對 think_data 數據表( think_ 是咱們在項目配置文件中定義的數據表前
綴)進行操做(包括CURD)了,M函數的用法還有不少,咱們之後會深刻了解。
ThinkPHP3.2.3快速入門
本文檔使用 看雲 構建 - 11 -
定義好控制器後,咱們修改模板文件,添加數據輸出標籤以下:
<html>
<head>
<title></title>
</head>
<body>
{$result.id}--{$result.data}
</body>
</html>
模板標籤的用法和Smarty相似,就是用於輸出數據的字段,這裏就表示輸出 think_data 表的id和data字
段的值。
咱們訪問會輸出:
1--thinkphp
若是發生錯誤,檢查你是否開啓了調試模式或者清空Runtime目錄下面的緩存文件。
若是你看到了上面的輸出結果,那麼恭喜你已經拿到了入門ThinkPHP的鑰匙!php
====html
讀取數據
當咱們成功寫入數據後,就能夠進行數據讀取操做了。在前面一篇中,咱們已經知道能夠用select方法獲
取數據集,這裏咱們來經過find方法獲取一個單一數據,定義read操做方法以下:
ThinkPHP3.2.3快速入門
本文檔使用 看雲 構建 - 16 -
public function read($id=0){
$Form = M('Form');
//
讀取數據
$data = $Form->find($id);
if($data) {
$this->assign('data',$data);// 模板變量賦值
}else{
$this->error('數據錯誤');
}$
this->display();
}
read操做方法有一個參數$id,表示咱們能夠接受URL裏面的id變量(後面咱們會在變量章節詳細描述。這
裏之因此用M方法而沒有用D方法,是由於find方法是基礎模型類Model中的方法,因此沒有必要浪費開銷
去實例化FormModel類(即便已經定義了FormModel類)。咱們一般採用find方法讀取某個數據,這裏
使用了AR模式來操做,因此沒有傳入查詢條件,find($id) 表示讀取主鍵爲$id值的數據,find方法的返回
值是一個以下格式的數組:
array(
'id' => 5,
'title' => '測試標題',
'content' => '測試內容',
'status' => 1,
)
而後咱們能夠在模板中輸出數據,添加一個read模板文件,
<table>
<tr>
<td>id:</td>
<td>{$data.id}</td>
</tr>
<tr>
<td>標題:</td>
<td>{$data.title}</td>
</tr>
<tr>
<td>內容:</td>
<td>{$data.content}</td>
</tr>
</table>
完成後,咱們就能夠訪問
http://localhost/app/index.php/home/Form/read/id/1
來查看了。
若是你只須要查詢某個字段的值,還可使用getField方法,例如:
ThinkPHP3.2.3快速入門
本文檔使用 看雲 構建 - 17 -
$Form = M("Form");
//
獲取標題
$title = $Form->where('id=3')->getField('title');
上面的用法表示獲取id值爲3的數據的title字段值。其實getField方法有不少用法,可是獲取某個字段的值
是getField方法最常規的用法。
查詢操做是最經常使用的操做,尤爲是涉及到複雜的查詢條件,咱們會在查詢語言一章對查詢進行更加詳細的
講解。mysql