您的位置:首页 > 编程语言 > PHP开发

thinkphp笔记-访问数据

2015-11-29 14:45 423 查看
读取数据
在开始之前,我们首先在数据库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的钥匙!

====

读取数据
当我们成功写入数据后,就可以进行数据读取操作了。在前面一篇中,我们已经知道可以用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方法最常规的用法。
查询操作是最常用的操作,尤其是涉及到复杂的查询条件,我们会在查询语言一章对查询进行更加详细的
讲解。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: