1、数据库配置
return [ 'type' => 'mysql',// 数据库类型 'hostname' => '127.0.0.1',// 服务器地址 'database' => 'test',// 数据库名 'username' => 'root',// 数据库用户名 'password' => '',// 数据库密码 'hostport' => '',// 数据库连接端口 'params' => [],// 数据库连接参数 'charset' => 'utf8',// 数据库编码默认采用utf8 'prefix' => '',// 数据库表前缀 'debug' => true,// 数据库调试模式 ];
//长连接使用
return [ 'database' => 'demo', // 数据库名 'prefix' => 'think_', // 数据库表前缀 'params' => [ // 数据库连接参数 // 使用长连接 \PDO::ATTR_PERSISTENT => true, ], ];
//模块的数据库配置文件中只需要配置和全局数据库配置文件差异的部分,相同的不需要重复配置。
2、原生查询:包括query和execute,分别用于查询和写入
$result = Db::execute('insert into think_data (id, name ,status) values (5, "thinkphp",1)');// 增 $result = Db::execute('delete from think_data where id = 5 ');// 删 $result = Db::execute('update think_data set name = "framework" where id = 5 ');// 改 $result = Db::query('select * from think_data where id = 5');// 查
//切换数据库查询 'db1' => [ // 数据库配置1 ... ], 'db2' => [ // 数据库配置2 ... ], // 链接 Db::connent('db1')->query('select * from think_users'); Db::connent('db2')->query('select * from think_data');
3、查询构造器
// 插入记录 Db::name('data') ->insert(['id' => 18, 'name' => 'thinkphp']); // 更新记录 Db::name('data') ->where('id', 18) ->update(['name' => "framework"]); // 查询数据$list = Db::name('data') ->where('id', 18) ->select();
// 删除数据 Db::name('data') ->where('id', 18) ->delete();
// 插入多条记录
Db::name('data')
->insertAll([['id'=>19,'name'=>'张三'],['id'=>20,'name'=>'李四'],...]);
//db
助手函数默认会每次重新连接数据库,因此应当尽量避免多次调用。
4、链式操作:链式操作不分前后,但必须在select()等操作前面
// 查询十个满足条件的数据 并按照id倒序排列 $list = Db::name('data') ->where('status', 1) ->field('id,name') ->order('id', 'desc') ->limit(10) ->select();
5、事务支持
...