连接数据库
在应用目录或模块目录的database.php配置数据库信息。
return [// 数据库类型'type' => 'mysql',// 服务器地址'hostname' => '127.0.0.1',// 数据库名'database' => '',// 用户名'username' => '',// 密码'password' => '',// 端口'hostport' => '',// 连接dsn'dsn' => '',// 数据库连接参数'params' => [],// 数据库编码默认采用utf8'charset' => 'utf8',// 数据库表前缀'prefix' => '',// 数据库调试模式'debug' => true,// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)'deploy' => 0,// 数据库读写是否分离 主从式有效'rw_separate' => false,// 读写分离后 主服务器数量'master_num' => 1,// 指定从服务器序号'slave_no' => '',// 自动读取主库数据'read_master' => false,// 是否严格检查字段是否存在'fields_strict' => true,// 数据集返回类型'resultset_type' => 'array',// 自动写入时间戳字段'auto_timestamp' => false,// 时间字段取出后的默认时间格式'datetime_format' => 'Y-m-d H:i:s',// 是否需要进行SQL性能分析'sql_explain' => false,
];
原生SQL操作
使用前引入数据库操作类
use think\Db;
查询操作
Db::query('select * from user where id=?',[1]);
插入操作
Db::execute('insert into user(username,password) values(?,?)',[$username,$password]);
查询构造器
where查询
查询一个数据,find方法查询不存在时返回null
Db::table('article')->where(id,1)->find();
查询一个数据集,select()方法查询不存在时返回一个空数据
Db::table('article')->where('user','brell')->select();
Db::table(&#39;article&#39;)->where(&#39;id&#39;,&#39;<&#39;,5)->select();
field方法&#xff1a;返回操作的字段
Db::table(&#39;article&#39;)->filed(&#39;title&#39;,&#39;content&#39;)->select();
order方法&#xff1a;结果排序
Db::table(&#39;article&#39;)->where(&#39;id&#39;,&#39;>&#39;,5)->order(&#39;create_time&#39;)->limit(10)->select();
fetchSql方法&#xff1a;返回sql语句
$sql&#61;Db::table(&#39;article&#39;)->fetchSql(true)->find(1);
union方法&#xff1a;合并两个或多个SELECT语句的结果集
Db::field(&#39;name&#39;)->table(&#39;user0&#39;)->union(select name from user1)->union(select name from user2)->select();
limit方法&#xff1a;指定查询和操作的数据
Db::table(&#39;article&#39;)->where(&#39;id>10&#39;)->filed(&#39;title,content&#39;)->limit(10)->select()
Db::table(&#39;article&#39;)->filed(&#39;title,content&#39;)->limit(10,20)->select()
page方法
DB::table(&#39;article&#39;)->page(1,10)->select();
增加数据构造器
增加一条数据
$data&#61;[&#39;title&#39;&#61;>&#39;title1&#39;,&#39;content&#39;&#61;>&#39;content1&#39;];
Db::table(&#39;article&#39;)->insert($data);
增加多条数据
$data&#61;[[&#39;title&#39;&#61;>&#39;title1&#39;,&#39;content&#39;&#61;>&#39;content1&#39;],[&#39;title&#39;&#61;>&#39;title2&#39;,&#39;content&#39;&#61;>&#39;content2&#39;]
];
Db::table(&#39;article&#39;)->insertAll($data);
删除数据构造器
根据主键删除
Db::table(&#39;article&#39;)->delete(1);Db::table(&#39;article&#39;) ->delete([2,3,4]);
根据条件删除
Db::table(&#39;article&#39;)->where(&#39;id&#39;,1)->delete();Db::table(&#39;article&#39;)->where(&#39;id&#39;,&#39;<&#39;,10)->delete();
更新数据构造器
Db::table(&#39;article&#39;)->where(&#39;id&#39;,1)->update([&#39;title&#39;&#61;>&#39;learn php&#39;]);或者Db::table(&#39;article&#39;)->update([&#39;title&#39;&#61;>&#39;learn php&#39;,&#39;id&#39;&#61;>1]);