一、連接數(shù)據(jù)庫
連接數(shù)據(jù)庫有兩種方式,一種是在config.php中配置,另一種是在實(shí)例化Db類時傳入連接參數(shù)。
在config.php中配置:
return [ // 數(shù)據(jù)庫類型 'type' => 'mysql', // 服務(wù)器地址 'hostname' => '127.0.0.1', // 數(shù)據(jù)庫名 'database' => 'test', // 數(shù)據(jù)庫用戶名 'username' => 'root', // 數(shù)據(jù)庫密碼 'password' => '', // 數(shù)據(jù)庫連接端口 'hostport' => '', ];
登錄后復(fù)制
實(shí)例化Db類時傳入連接參數(shù):
use think\Db; $config = [ // 數(shù)據(jù)庫類型 'type' => 'mysql', // 服務(wù)器地址 'hostname' => '127.0.0.1', // 數(shù)據(jù)庫名 'database' => 'test', // 數(shù)據(jù)庫用戶名 'username' => 'root', // 數(shù)據(jù)庫密碼 'password' => '', // 數(shù)據(jù)庫連接端口 'hostport' => '', ]; Db::connect($config);
登錄后復(fù)制
二、基本操作
1.查詢操作
use think\Db; //查詢一條數(shù)據(jù) Db::table('user')->where('id', 1)->find(); //查詢多條數(shù)據(jù) Db::table('user')->where('age', '>', 18)->select();
登錄后復(fù)制
2.插入操作
use think\Db; $data = [ 'username' => 'admin', 'password' => md5('admin'), 'sex' => 1, 'age' => 20, ]; Db::table('user')->insert($data);
登錄后復(fù)制
3.更新操作
use think\Db; Db::table('user')->where('id', 1)->update(['age' => 21]);
登錄后復(fù)制
4.刪除操作
use think\Db; Db::table('user')->where('id', 1)->delete();
登錄后復(fù)制
三、高級操作
1.鏈?zhǔn)讲僮?/p>
鏈?zhǔn)讲僮骺梢院喕痵ql語句的書寫。
use think\Db; Db::table('user') ->alias('u') ->join('role r', 'u.role_id=r.id') ->where('u.id', 1) ->field('u.username, r.name') ->find();
登錄后復(fù)制
2.調(diào)試方法
在開發(fā)環(huán)境中,我們經(jīng)常需要查看sql語句的執(zhí)行情況,Db類提供了三個調(diào)試方法:getLastSql、getExplain和getSqlLog。
use think\Db; Db::table('user')->getLastSql(); Db::table('user')->where('age', '>', 18)->getExplain(); Db::table('user')->where('age', '>', 18)->select(); Db::table('user')->getLastSql(); print_r(Db::getSqlLog());
登錄后復(fù)制
getLastSql方法可以獲取最后一次執(zhí)行的sql語句。
getExplain方法可以獲取sql語句的執(zhí)行計(jì)劃。
getSqlLog方法可以獲取所有執(zhí)行的sql語句和執(zhí)行時間。
以上就是thinkphp5 db類怎么使用的詳細(xì)內(nèi)容,更多請關(guān)注www.xfxf.net其它相關(guān)文章!