一、操作數據庫
1、數據庫連接配置
數據庫默認的相關配置在項目的application\database.php中已經定義好。 只需要在模塊的數據庫配置文件中配置好當前模塊需要連接的數據庫的配置參數即可。
模塊的數據庫配置文件的路徑為:
application/index/database.php
配置參數 如:數據庫名稱和端口號
return [ // 數據庫名 'database' => 'test', // 端口 'hostport' => 3306 ];
2、查看數據庫配置詳情
打印config('database')即可查看所有配置
3、連接數據庫
$res = Db::connect();
注意:
- 需要在文件頭引入
Db類。引入方式為:use think\Db;- TP5是憜性加載,即此時雖然已經可以查看到連接數據庫的參數信息,但即使配置參數有問題(如數據庫不存在)時不會有錯誤提示。
4、查詢數據
(1)運行原生SQL語句(query()查詢)
1)支持參數綁定
Db::query('select * from think_user where id=?',[8]);
2)支持命名占位符綁定
Db::query('select * from think_user where id=:id',['id'=>8]);
3)支持多個數據庫連接
Db::connect($config)->query('select * from think_user where id=:id',['id'=>8]);
(2)查詢構造器
1)查詢一條數據(結果不存在時,返回null)
Db::table('think_user')->where('status',1)->find();
【定義了數據表前綴】
Db::name('user')->where('status',1)->find();
【助手函數:默認每次都會重新連接數據庫】
db('user')->where('status',1)->find();
【助手函數:使用第三個參數進行單例化,使得每次使用不再重新連接數據庫】
db('user',[],false)->where('status',1)->find();
【使用查詢對象進行查詢】
$query = new \think\db\Query(); $query->table('think_user')->where('status',1); Db::find($query);
【直接使用閉包函數】
Db::find(function($query){ $query->table('think_user')->where('status',1); });
2)查詢多條數據(結果不存在時,返回空數組)
Db::table('think_user')->where('status',1)->select();
【定義了數據表前綴】
Db::name('user')->where('status',1)->select();
【助手函數:默認每次都會重新連接數據庫】
db('user')->where('status',1)->select();
【助手函數:使用第三個參數進行單例化,使得每次使用不再重新連接數據庫】
db('user',[],false)->where('status',1)->select();
【使用查詢對象進行查詢】
$query = new \think\db\Query(); $query->table('think_user')->where('status',1); Db::select($query);
【直接使用閉包函數】
Db::select(function($query){ $query->table('think_user')->where('status',1); });
3)查詢某個字段的值
Db::table('think_user')->where('id',1)->value('name');
4)查詢某一列的值
Db::table('think_user')->where('status',1)->column('name');
5)查詢多列的值
Db::table('think_user')->where('status',1)->field('id,name')->select(); //查詢id和name兩列的所有記錄
6)數據集分批處理
7)JSON類型數據查詢
5、添加數據
(1)添加一條數據insert()----添加成功返回1
$data = ['foo' => 'bar', 'bar' => 'foo']; Db::table('think_user')->insert($data);
(2)添加多條數據insertAll()----添加成功返回添加成功的記錄條數
$data = [ ['foo' => 'bar', 'bar' => 'foo'], ['foo' => 'bar1', 'bar' => 'foo1'], ['foo' => 'bar2', 'bar' => 'foo2'] ]; Db::name('user')->insertAll($data);
(3)助手函數
// 添加單條數據 db('user')->insert($data); // 添加多條數據 db('user')->insertAll($list);
(4)快捷更新(V5.0.5+)
Db::table('data')
->data(['name'=>'tp','score'=>1000])
->insert();
