// 数据库字段 连贯操作方法~~!! limit分页 select 查询!!
$Model->field('user.name,role.title')->table('think_user'=>'user','think_role'=>'role')->limit(10)->select();
// 数据表别名 alias表别名
$Model=M('User');
$Model->alias('a')->join('__DEPT__ b ON b.user_id= a.id')->select();
SELECT * FROM think_user a INNER JOIN think_dept b ON b.user_id= a.id
// data方法 对数据进行直接赋值 add 方法
$Model = M('User');
$data['name'] = '流年';
$data['email'] = 'thinkphp@qq.com';
$Model->data($data)->add();
// field 字段查询 select 可以在 field 方法中直接使用函数
$Model->field('id,title,content(count)')->select();
// 。。 可以支持数组
$Model->field(array('id','title','content'))->select();
// 数组定义可以给某些字段定义别名 'nickname'=>'name'
$Model->field(array('id','nickname'=>'name'))->select();
// 查询出来所有字段 field()
$Model->select();
$Model->field()->select();
$Model->field('*')->select();
// 如果希望获取数据库中的某一个字段值 只获取一个就直接在后面加上true
$Model->field('user_id,content',true)->select();
//或者用
$Model->field(array('user_id','content'),true)->select();
// field 和 create 结合使用可以防止sql语句注入 tp3.2内置防sql注入
$Model->field('title,email,content')->create();
// 同样的,field也可以结合add和save方法,进行字段过滤,例如:
$Model->field('title,email,content')->save($data);
// 如果data数据中包含有title,email,content之外的字段数据的话,也会过滤掉。
// order 方法属于连贯操作 用于对操作的结果排序 desc降序
$Model->where('status=1')->order('id desc')->limit(5)->select();
// 如果字段和mysql字段有冲突 用数组方式代替
$Model->where('status=1')->order(array('order','id'=>'desc'))->limit(5)->select();
// 获取需要满足要求的客户 limit方法 field字段 where条件 limit每页显示条数
$User=M('User');
$User->where('status=1')->field('id,name')->limit(10)->select();
// 用于文章分页查询是limit方法比较常用的场合
$Article = M('Article');
$Article->limit('10,25')->select();
// 或者用
$Article->limit(10,25)->select();
// 表示查询文章数据,从第10行开始的25条数据
// page方法 可以自动计算每个分页的limit方法 一共显示几页。。
$Model->limit(5)->page(5)->select();
// Group分组操作
$this->field('username,max(score)')->group('user_id')->select();
// Join 连贯查询 ON类似于where条件 left join right join inner join 三种类型
$Model = M('Artist');
$Model->join('think_work ON think_artist.id = think_work.artist_id')->join('think_card ON think_artist.card_id = think_card.id')->select();
// Cache 方法用于查询缓存 连贯操作方法之一
$Model = M('User');
$Model->where('id=5')->cache(true)->find();
// 第一次查询结果会被缓存,第二次查询相同的数据的时候就会直接返回缓存中的内容,而不需要再次进行数据库查询操作。
// comment 用于查询在生成Sql语句中添加注释内容
$this->comment('查询考试前十名分数')->field('username,score')->limit(10)->order('score desc')->select();
// 相当于
SELECT username,score FROM think_score ORDER BY score desc LIMIT 10 /* 查询考试前十名分数 */
// Token 方法可用于临时关闭令牌验证
$model->token(false)->create();
// 即可在提交表单的时候临时关闭令牌验证(即使开启了TOKEN_ON参数)。
-----------------------------------创建数据对象------------------------------------
// 实例化User模型
$User = M('User');
// 根据表单提交的POST数据创建数据对象
$User->create();------//获取form表单提交的数据 ID name sex city 等等
// Create方法支持从其它方式创建数据对象,例如,从其它的数据对象,或者数组等
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->create($data);
-------------------------------增加(add)-----------------------------------------
// 或者 如果在add之前已经创建数据对象的话(例如使用了create或者data方法),add方法就不需要再传入数据了。
$User = M("User"); // 实例化User对象
// 根据表单提交的POST数据创建数据对象
if($User->create()){
$result = $User->add(); // 写入数据到数据库
if($result){
// 如果主键是自动增长型 成功后返回值就是最新插入的值
$insertId = $result;
}
}
连贯操作 作用 支持的参数类型
table 用于定义要操作的数据表名称 字符串和数组
data 用于指定要写入的数据对象 数组和对象
field 用于定义要写入的字段 字符串和数组
relation 用于关联查询(需要关联模型支持) 字符串
validate 用于数据自动验证 数组
auto 用于数据自动完成 数组
filter 用于数据过滤 字符串
scope 用于命名范围 字符串、数组
bind 用于数据绑定操作 数组
token 用于令牌验证 布尔值
comment 用于SQL注释 字符串
fetchSql 不执行SQL而只是返回SQL 布尔值
-------------------------------读取(select)-----------------------------------------
$User = M("User"); // 实例化User对象
// 查找status值为1name值为think的用户数据 find 方法 查询单条语句
$data = $User->where('status=1 AND name="thinkphp"')->find();
var_dump($data);//输出数组(如果查询出错,find方法返回false,如果查询结果为空返回NULL,查询成功返回一个一维数组)
array (size=3)
'name' => string 'thinkphp' (length=8)
'email' => string 'thinkphp@gmail.com' (length=18)
'status'=> int 1
where 用于查询或者更新条件的定义 字符串、数组和对象
table 用于定义要操作的数据表名称 字符串和数组
alias 用于给当前数据表定义别名 字符串
field 用于定义要查询的字段(支持字段排除) 字符串和数组
order 用于对结果排序 字符串和数组
group 用于对查询的group支持 字符串
having 用于对查询的having支持 字符串
join 用于对查询的join支持 字符串和数组
union 用于对查询的union支持 字符串、数组和对象
distinct 用于查询的distinct支持 布尔值
lock 用于数据库的锁机制 布尔值
cache 用于查询缓存 支持多个参数
relation 用于关联查询(需要关联模型支持) 字符串
result 用于返回数据转换 字符串
scope 用于命名范围 字符串、数组
bind 用于数据绑定操作 数组
comment 用于SQL注释 字符串
fetchSql 不执行SQL而只是返回SQL 布尔值
-------------------------------更新(save)-----------------------------------------
// 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(); // 根据条件更新记录
连贯操作 作用 支持的参数类型
where 用于查询或者更新条件的定义 字符串、数组和对象
table 用于定义要操作的数据表名称 字符串和数组
alias 用于给当前数据表定义别名 字符串
field 用于定义允许更新的字段 字符串和数组
order 用于对数据排序 字符串和数组
lock 用于数据库的锁机制 布尔值
relation 用于关联更新(需要关联模型支持) 字符串
scope 用于命名范围 字符串、数组
bind 用于数据绑定操作 数组
comment 用于SQL注释 字符串
fetchSql 不执行SQL而只是返回SQL 布尔值
--------------------------------删除(delete)------------------------------------------
// 删除条件主要取决于ID 字段如果是唯一的话 也可以按照其他的字段进行删除 可以使用order 排序的方法来进行删除
$User = M("User"); // 实例化User对象
$User->where('id=5')->delete(); // 删除id为5的用户数据
$User->delete('1,2,5'); // 删除主键为1,2和5的用户数据
$User->where('status=0')->delete(); // 删除所有状态为0的用户数据
连贯操作 作用 支持的参数类型
where 用于查询或者更新条件的定义 字符串、数组和对象
table 用于定义要操作的数据表名称 字符串和数组
alias 用于给当前数据表定义别名 字符串
order 用于对数据排序 字符串和数组
lock 用于数据库的锁机制 布尔值
relation 用于关联删除(需要关联模型支持) 字符串
scope 用于命名范围 字符串、数组
bind 用于数据绑定操作 数组
comment 用于SQL注释 字符串
fetchSql 不执行SQL而只是返回SQL 布尔值
-------------------------------分割线------------------------------
$this->show('要输出的话');
$this->display("要跳转的页面");//页面和控制器的文件名一样的情况下可以直接写入空。
$this->assign("要传输的变量");
Thinkphp3.2 关于数据库的基本操作
最新推荐文章于 2023-11-10 11:39:27 发布