-
【增删改查之 查】 方法: 1. 使用Db类 a) 使用sql语句:Db::query("select * from tp5_user where id=?",[1]) * query的第二个参数是个数组,数组第一个单元替换前面查询语句的第一个问号,第二个单元替换第二个问号,以此类推 b) 使用select方法: Db::table('tp5_user')->select() 返回所有记录,所以是二维数组,可以和where合作。结果不存在,返回空数组。 c) 使用column方法:Db::table('tp5_user')->column('username','email'); 返回指定字段列的所有记录值,是一维数组,如果有第二个参数的话,则以第二参数的值作为数组的key。结果不存在,返回空数组。 d) 使用find方法:Db::table('tp5_user')->find(); 返回一条记录,所以是一维数组,一般和where合作。结果不存在,返回NULL。 e) 使用value方法:Db::table('tp5_user')->where(['id'=>10])->value('username'); 返回一条记录,而且是value里面指定的字段值。结果不存在,返回NULL。 * 在2-5这四个方法里面,table可以换成name方法,可以省略掉表前缀 2. 使用助手函数: db('user')->select(); 助手函数后面同样可以使用select find value column。 使用类和助手函数的区别是: * 类是单例模式,不需要每次使用的时候实例化 * 助手函数在每次调用的时候需要实例化。如果不希望重新实例化,可以传递第三个参数false。 db('user',[],false)查看全部
-
修改数据库配置方式 1.可在config下的database.php返回配置信息 2.在方法里面引入 use think\db;DB::connect(array);返回一个数组配置 3.同样是DB::connect("mysql://root:password@127.0.0.1:3306:/databasename#utf8"); 4.在配置文件中,返回一个array,DB::connect("array");查看全部
-
【增删改查之 增】 方法: $db = Db::name('user') 1. insert: $db->insert([ 'username'=>'hujianlun', 'password'=>md5('hujianlun'), 'email'=>'hujianlun@qq.com' ]); //返回影响记录的行数 2. insertGetId: $db->insertGetId([ 'username'=>'hujianlun', 'password'=>md5('hujianlun'), 'email'=>'hujianlun@qq.com' ]); //返回新增记录的自增id 3. insertall: $db->insertall($data); //$data是包含要插入数据的二维数组。返回成功插入的记录数目。 4. 使用sql语句 Db::execute("insert into tp5_user set username=?,password=?,email=?",['gemma',md5('gemma'),'gemma@qq.com']);查看全部
-
model的命名规范:一般model的名字和表名是对应的,例如 表名为imooc_user->模型名User.php 表名imooc_user_info->模型名UserInfo.php查看全部
-
助手函数db类db('user',[],false)避免多次实例化 Db单例模式,
查看全部 -
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();
查看全部 -
修改数据库配置的四种方式
1.可在config下的database.php返回配置信息,直接 Db::connect()(如果参数为空,那么会默认使用database.php中的配置连接)
2.在方法里面引入 use think\Db;Db::connect(array);数组即数据库连接配置
3.同样是Db::connect("mysql://root:password@127.0.0.1:3306:/databasename#utf8"); //use think\Db
4.在配置文件中,添加一个数组,Db::connect("数组键名");
//use think\Db查看全部 -
$db->where([])->update([])返回影响的行数
$db->where([])->setField($fieldname,$fieldvalue)更改某个字段值
$db->where([])->setInc($fieldname,$num);增加,不设置第二个参数默认为一
$db->where([])->setDec($fieldname,$num);减少
查看全部 -
使用模型更新表数据:
<?php namespace app\index\controller; use think\Controller; use app\index\model\User; class Index extends Controller { public function index(){ #当数据中存在自增id时,数据更新方式,返回修改的内容,无法验证是否更改 // $res = User::update([ // 'id' => 1, // 'username' => 'wenco_update' // ]); // dump($res->toArray()); #当数据中不存在自增id时如下,第二个参数即为where,可以为闭包函数,返回修改内容 // $res = User::update([ // 'username' => 'wenco_update' // 当第二个参数为数组 ],['id' => '2']); //当第二个参数为闭包函数 ],function ($query){ // $query->where('id','>=', 15); // }); #where 返回被影响行数,推荐使用! // $res = User::where('id','between',[1,5])->update([ // 'username' => 'wenco_old' // ]); // dump($res); #User::get,返回被影响行数 // $userModel = User::get(1); // $userModel->username = '123'; // $userModel->email = '123@qq.com'; // $res = $userModel->save(); // dump($res); #new User,返回影响行数,第二个参数可以为闭包函数 // $userModel = new User; // $res = $userModel->save([ // 'username' => 555 // ],['id' => 18]); // dump($res); #saveAll,返回结果集,不推荐使用 $userModel = new User; $res = $userModel->saveAll([ ['id' => 1,'username' => 'wencocococ' ], ['id' => 2,'username' => 'wencocococ' ] ]); dump($res); } }
查看全部 -
// 链接数据库 // $res = Db::connect(); #使用sql语句的方式查询数据库 //$res = Db::query("select * from imooc_user where id=?", [1]); // $res = Db::execute("insert into imooc_user set username=?,password=?,email=?", [ // 'imooc', // md5('imooc'), // 'imooc@qq.com' // ]); #select 返回所有记录,返回的结果是一个二维数组 #如果结果不存在,返回一个空数组 //$res = Db::table('imooc_user')->select(); #find 返回一条记录,返回的结果是一个一维数组 #如果结果不存在,返回NULL //$res = Db::table('imooc_user')->find(); #value 返回一条记录,并且是这条记录的某个字段值 #如果结果不存在,返回NULL //$res = Db::table('imooc_user')->value('username'); #column 返回一个一维数组,数组中的value值就是我们要获取的列的值 #如果存在第二个参数,就返回这个数组并且用第二个参数的值作为数组的key值 #如果结果不存在,返回空数组 //$res = Db::table('imooc_user')->column('username','email'); //$res = Db::name('user')->select(); $res = db('user', [], false)->find();查看全部
-
四种引用模型的方法 有直接使用 有new一个实例 有使用Loader::model() 有助手函数module() 注意命名规范查看全部
-
Db连接 3. dns配置法 类型://用户名:密码@主机名:端口号/数据库名称#utf8查看全部
-
如何更改数据获取之后返回的值? 1. 在model编写public方法,get+字段名(首字母大写)+Attr,比如getSexAttr($val) 2. 在方法内编写逻辑,switch case可以处理不同的情况下返回什么样的值。 3. 然后在控制器内可以get记录然后展示其内的值,一般情况下都是展示处理后的数据。 * 在控制器内调用getData()方法可以获取原始数据,而且是数组形式查看全部
-
如何更改数据获取之后返回的值? 1. 在model编写public方法,get+字段名(首字母大写)+Attr,比如getSexAttr($val) 2. 在方法内编写逻辑,switch case可以处理不同的情况下返回什么样的值。 3. 然后在控制器内可以get记录然后展示其内的值,一般情况下都是展示处理后的数据。 * 在控制器内调用getData()方法可以获取原始数据,而且是数组形式。查看全部
-
【模型删除】 destroy: User::destroy() 1 可以传入单独数字,主键值 2 传入数组如['id'=>2] 3 传递闭包函数 function 获取删除:通过get方法获得模型对象,调用模型对象的delete方法进行删除 where删除:where->delete() //where('1=1')代表删除整个表的数据,但是保留了自增id的记录查看全部
举报