ThinkPHP框架数据操作
本节介绍
- 数据库连接配置
- 数据创建
- 数据写入
- 数据读取
- 数据更新
- 数据删除
1. ThinkPHP的数据库连接
- ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库驱动来处理。目前的数据库包括MySQL、SQLServer、PgSQL、Sqlite、Oracle、Ibase、Mongo,也包括对PDO的支持
- 如果应用需要使用数据库,必须配置数据库连接信息
2. 数据库配置
- 可在
Home/Conf/config.php文件中添加数据库配置:-
//数据库配置信息 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 'thinkphp', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => '123456', // 密码 'DB_PORT' => 3306, // 端口 'DB_PREFIX' => 'think_', // 数据库表前缀 'DB_CHARSET'=> 'utf8', // 字符集 'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录SQL日志 3.2.3新增
-
- 支持的数据库设置:
3. CURD操作
- ThinkPHP提供了灵活和方便的数据操作方法,对数据库操作的四个基本操作(CURD):创建、更新、读取和删除的实现是最基本的,也是必须掌握的,在这基础之上才能熟悉更多实用的数据操作方法。CURD操作通常是可以和连贯操作配合完成的。
- 创建数据库表模型&对象,首字母大写
(1) 数据创建
-
// 获取表单的POST数据 $data['name'] = $_POST['name']; $data['email'] = $_POST['email']; // 更多的表单数据值获取 //…… // 实例化User模型 $User = M('User'); // 根据表单提交的POST数据创建数据对象 $User->create();
(2) 数据写入
- ThinkPHP的数据写入操作使用
add方法。 -
$User = M("User"); // 实例化User对象 $data['name'] = 'ThinkPHP'; $data['email'] = 'ThinkPHP@gmail.com'; $User->add($data);
(3) 数据读取
-
在ThinkPHP中读取数据的方式很多,通常分为读取数据、读取数据集和读取字段值。
-
数据查询方法支持的常用连贯操作方法:
-
读取数据:
- 读取数据是指读取数据表中的一行数据(或者关联数据),主要通过
find方法完成 -
$User = M("User"); // 实例化User对象 // 查找status值为1name值为think的用户数据 $data = $User->where('status=1 AND name="thinkphp"')->find(); dump($data);
- 读取数据是指读取数据表中的一行数据(或者关联数据),主要通过
-
读取数据集
- 读取数据集其实就是获取数据表中的多行记录(以及关联数据),使用
select方法 -
$User = M("User"); // 实例化User对象 // 查找status值为1的用户数据 以创建时间排序 返回10条数据 $list = $User->where('status=1')->order('create_time')->limit(10)->select();
- 读取数据集其实就是获取数据表中的多行记录(以及关联数据),使用
-
读取字段值
- 读取字段值其实就是获取数据表中的某个列的多个或者单个数据,最常用的方法是
getField方法。 -
$User = M("User"); // 实例化User对象 // 获取ID为3的用户的昵称 $nickname = $User->where('id=3')->getField('nickname');
- 读取字段值其实就是获取数据表中的某个列的多个或者单个数据,最常用的方法是
(4) 数据更新
- ThinkPHP的数据更新操作包括更新数据和更新字段方法。
- 更新数据:
- 更新数据使用
save方法-
$User = M("User"); // 实例化User对象 // 要修改的数据对象属性赋值 $data['name'] = 'ThinkPHP'; $data['email'] = 'ThinkPHP@gmail.com'; $User->where('id=5')->save($data); // 根据条件更新记录
-
- 也可以改成对象方式来操作
-
$User = M("User"); // 实例化User对象 // 要修改的数据对象属性赋值 $User->name = 'ThinkPHP'; $User->email = 'ThinkPHP@gmail.com'; $User->where('id=5')->save(); // 根据条件更新记录
-
- 更新数据使用
- 数据更新方法支持的连贯操作方法:
(5) 数据删除
- ThinkPHP删除数据使用delete方法。
- 删除主键为5的数据:
-
$Form = M('Form'); $Form->delete(5);
-
- delete方法可以删除单个数据,也可以删除多个数据,这取决于删除条件。
-
$User = M("User"); // 实例化User对象 $User->where('id=5')->delete(); // 删除id为5的用户数据 $User->delete('1,2,5'); // 删除主键为1,2和5的用户数据 $User->where('status=0')->delete(); // 删
-
- delete方法的返回值是删除的记录数,如果返回值是false则表示SQL出错,返回值如果为0表示没有删除任何数据。