-
$db = Db::name('user1');
#updata 数据更新 返回影响的行数
// 与update不同的是setField每次只能更新一个字段
$res = $db->where([
'id' => 1
])->update([
'username' => 'xxx'
]);
#setField 返回影响数据的行数 更新一个字段
$res = $db->where([
'id' => 2
])->setField('username','6666666');
// $db -> where([key => value, key => value, ***])->setInc('INT字段', 自增数值默认1) 返回影响行数
// $db -> where([key => value, key => value, ***])->setDec('INT字段', 自减数值默认1) 返回影响行数
dump($res);
查看全部 -
添加数据:
insert 返回值是影响记录的行数 插入数
insertGetId 返回值插入数据的自增ID
insertAll 返回插入数据成功的行数
Db::name('不加前缀数据库名')->insert($一维数组) 返回值是影响记录的行数
Db::name('不加前缀数据库名')->insertGetId($一维数组) 返回ID
Db::name('不加前缀数据库名')->insertAll($二维数组) 返回成功插入行数
<!-- Db::table 方法同上 -->
Db::table('据库名')->insert($一维数组);
或者用SQL语句插入Db::execute(SQL语句)
二维数组[
0 =>一维数组[key=>value]
]
查看全部 -
#使用sql语句的方式查询数据库
// $res = Db::query("select * from user where id=?",[5]);
#插入语句
// $res = Db::execute("insert into user set password=?,username=?,name=?,age=?",[
// md5('password'),
// 'bhfhgvbv',
// 'love',
// '22'
// ]);
#select 返回所有记录 返回的结果是一个二维数组
// $res = Db::table('user')->select();
#如果结果不存在 返回一个空数组
// $res = Db::table('user')->where([
// 'id' => '100'
// ])->select();
#find 返回一条记录 返回的结果是一个一维数组
#如果结果不存在 返回一个空数组
// $res = Db::table('user')->find();
#value 返回一条记录 并且是这条记录的某个字段值
#如果结果不存在 返回NULL
// $res = Db::table('user')->value('name');
#column 返回一个一维数组,数组中的value值就是我们要获取的列的值
#如果存在第二个参数 就返回这个数组并且用第二个参数作为数组的key值
#如果结果不存在 返回一个空数组
// $res = Db::table('user')->column('name','username');
// $res = Db::name('user')->select();
$res = db('user',[],false)->find();
dump($res);
查看全部 -
数据库的链接
#第一种方式
dump(config('database'));
$res=Db::connect([
'type' => 'mysql',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'test',
// 数据库用户名
'username' => 'root',
// 数据库密码
'password' => 'root_pw',
// 数据库连接端口
'hostport' => '',
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => '',
]);
dump($res);
#第二种方式
$res = Db::connect("mysql://root_xn:root@127.0.0.1:3306/course#utf8");
dump($res);
#第三种方式
$res=Db::connect('db_config01');
dump($res);
查看全部 -
Db类查询的操作
查看全部 -
<?php namespace app\index\controller; use think\Controller; use app\index\model\User; class index extends Controller{ public function index(){ $res = User::destroy(function($query){ $query->where('id','>',5); });//可以传ID值或者闭包函数作为条件 dump($res); $userModel = User::get(7); $userModel->delete(); $res = User::where("1=1") ->delete(); dump($res); } }
查看全部 -
tp里面更新数据的两种方式
1.
$model::where(array('字段'=>'值'))->update(array($change));
或者如图所示;
<?php namespace app\index\controller; use think\Controller; use app\index\model\User; class Index extends Controller{ $data = []; for($i=1;$i<21;$i++){ $data[] = [ 'username'=>'zhangsan_'.$i, 'password'=>md5('sdfa'._$i), 'age'=>$i]; $userModel = new User; $userModel->saveAll($data); dump($res); $res = User::update([ 'username'=>'wangba', 'age'=>15, 'id'=>15],function($query){ $query->where('id','LT',5);});//如果第一个参数不包含条件ID,第二个参数应该设置ID值或指闭包函数为更新条件 dump($res); $res = User::where('id','<',6)->update([ 'username'=>'hehe']); $userModel = User::get(1); $userModel->username = "123"; $userModel->age = 110; $usermodel = new User; $res = $userModel->save(['username'=>'huhu'],function($query){ $query->where("id","<","5");}); $res = $usermodel->saveAll([['id'=>1,'username'=>'jingyao'], ['id'=>2,'username'=>'lihong'] ]); } }
查看全部 -
create([],true)自动排除数据库中不存在的字段,,true可为数组,设置为可允许字段的字段名
$userModel=new User;
$userModel->allowfield()->save() 另一种新增字段方式;
create 添加一条数据,有两个参数,第一个为数组,要插入的字段和值,第二个参数为true时自动过滤不存在字段, 或者是以数组形式写入要添加的字段,返回值为对象;
save 添加一条数据,两种书写方法,用allowField(true)来过滤不存在字段,也可以填写以数组的形式添加要添加的字段,返回值为受影响的行数;
saveAll(二维数组) 添加多条数据,返回值为二维数组,value值为对象
<?php namespace app\index\controller; use think\Controller; use app\index\model\User; class Index extends Controller{ public function index(){ $user = User::create([ 'username'=>'zhangsan', 'password'=>md5(123456), 'age'=>13 ],['username','age']);//第二个参数设置为true则只插入数据表中存在的字段,数组是允许插入的字段,不设置插入不存在的字段的时候会报错 dump($res->id);//返回插入的ID $userModel = new User; $userModel->username = "lisi"; $userModel->password = md5('sdfa'); $userModel->save(); dump($userModel->id); $userModel = new User; $res = $userModel->allowField(['username'])->save(["username"=>'wangba','password'=>md5('sdfs'), 'demo'=>123]); $res = $userModel->saveAll([ ['age'=>17],['age'=>18]]); foreach($res as $val){$arr = $val->toArray(); dump($arr); } } }
查看全部 -
使用User::get(function($query)){$query->where()->field()}查询
User::where()->field()->find()查询某一条 返回对象
User::all(function($query){}获取多条记录,使用主键 返回对象
User::where()->field()->limit()->order()->select();多条查询 返回对象
User::where()->value()按字段查询一条 返回的是数组
User::where()->column("email","username")以username为键的数组
代码:
<?php
namespace
app\index\controller;
use
think\Controller;
use
app\index\controller\User;
class
index
extends
Controller{
$res
= User::get(
function
(
$query
){
$query
->where(
"username"
,
"eq"
,
"zhangsan"
)
->filed(
"username,email"
);
});
$res
= User::where(
"id"
,12)
->field(
"id,username"
)->
find();
$res
= User::all(
function
(
$query
){
$query
->where(
"id"
,
"<"
,
"15"
)
->select();
});
$res
= User::where(
'id'
,
'>'
,
"15"
)
->field(
"username,email"
)
->limit(3)
->order(
'id DESC'
)
->select();
foreach
(
$res
as
$val
){
$res
->toArray();
dump(
$val
->toArray());
}
$res
= User::value(
'email'
);
$res
= User::where(
'id'
,
'10'
)->value(
'email'
);
$res
= User::column(
"email"
,
"username"
);
dump(
$res
);
}
查看全部 -
Model的使用方法
use app\模块\model\模型类名
1、$res = 模型类名::get(1);
2、$user = new 模型类名;
$res = $user::get(1);
3、使用Loader
use think\Loader;
$user = Loader::model('模型类名');
$res = $user::get(1);
4、助手函数
$user = model('模型类名');
$res = $user::get(1);
查看全部 -
whereOr 判断条件
e.g.:$sql=$db->where("id","in","1,2,3")->whereOr("username","eq","17771258")->buildSql();
$sql=$db->where([
'id'=>['in',[1,2,3]],
'username'=>'17771258'
])->buildSql();
查看全部 -
buildSql();返回SQL语句
where('字段名','表达式','查询条件');
表达式 含义
EQ、= 等于(=)
NEQ、<> 不等于(<>)
GT、> 大于(>)
EGT、>= 大于等于(>=)
LT、< 小于(<)
ELT、<= 小于等于(<=)
LIKE 模糊查询
[NOT] BETWEEN (不在)区间查询
[NOT] IN (不在)IN 查询( 'id','in' ,'1,5,8'( [1,5,8] ) )
[NOT] NULL 查询字段是否(不)是NULL
[NOT] EXISTS EXISTS查询
EXP 表达式查询,支持SQL语法
> time 时间比较
< time 时间比较
between time 时间比较
notbetween time 时间比较
<!-- Db::table -->
Db::table('据库名')->where()->buildSql();
<!-- Db::name 方法同上 -->
Db::name('不戴前置数据库名')->where()->buildSql();
查看全部 -
删除数据
$db = Db::name('不加前缀的数据表名');
$res = $db->where([key=>value, key=>value, ***]或者1=1删除全部)->delete(留空则用where,或者可以添加自增ID值删除) 返回影响行数
查看全部 -
SQL:update 返回影响的行数
$db=DB:name('user');
$db->where([])->update([一维数组]);
SQL:setField 返回影响数据的行数,每次只更新一个字段
$db->where([])->setField ('字段名','值');
$db->where([])->setInc($fieldname,$num);增加,不设置第二个参数默认为一
$db->where([])->setDec($fieldname,$num);减少
查看全部 -
添加数据:
insert 返回值是影响记录的行数 插入数
insertGetId 返回值插入数据的自增ID
insertAll 返回插入数据成功的行数
Db::name('不加前缀数据库名')->insert($一维数组) 返回值是影响记录的行数
Db::name('不加前缀数据库名')->insertGetId($一维数组) 返回ID
Db::name('不加前缀数据库名')->insertAll($二维数组) 返回成功插入行数
<!-- Db::table 方法同上 -->
Db::table('据库名')->insert($一维数组);
或者用SQL语句插入Db::execute(SQL语句)
二维数组[
0 =>一维数组[key=>value]
]
查看全部
举报