ThinkPHP6项目基操(6.数据库Db操作)
數(shù)據(jù)庫(kù)Db操作
- 一、數(shù)據(jù)庫(kù)配置
- 二、訪問數(shù)據(jù)庫(kù)
- 1. 使用門面模式的Db類
- 2. 使用容器方式
- 三、數(shù)據(jù)庫(kù)返回?cái)?shù)據(jù)異常調(diào)試
- 1. 打開APP_DEBUG
- 2. 打印SQL語句
- 四、增刪查改CURD操作
- 1. 新增
- 2. 刪除
- 3. 更新
一、數(shù)據(jù)庫(kù)配置
config目錄下默認(rèn)有個(gè)database.php文件,這里配置了默認(rèn)的數(shù)據(jù)庫(kù)信息:
<?phpreturn [// 默認(rèn)使用的數(shù)據(jù)庫(kù)連接配置'default' => env('database.driver', 'mysql'),// 自定義時(shí)間查詢規(guī)則'time_query_rule' => [],// 自動(dòng)寫入時(shí)間戳字段// true為自動(dòng)識(shí)別類型 false關(guān)閉// 字符串則明確指定時(shí)間字段類型 支持 int timestamp datetime date'auto_timestamp' => true,// 時(shí)間字段取出后的默認(rèn)時(shí)間格式'datetime_format' => 'Y-m-d H:i:s',// 數(shù)據(jù)庫(kù)連接配置信息'connections' => ['mysql' => [// 數(shù)據(jù)庫(kù)類型'type' => env('database.type', 'mysql'),// 服務(wù)器地址'hostname' => env('database.hostname', '127.0.0.1'),// 數(shù)據(jù)庫(kù)名'database' => env('database.database', ''),// 用戶名'username' => env('database.username', 'root'),// 密碼'password' => env('database.password', ''),// 端口'hostport' => env('database.hostport', '3306'),// 數(shù)據(jù)庫(kù)連接參數(shù)'params' => [],// 數(shù)據(jù)庫(kù)編碼默認(rèn)采用utf8'charset' => env('database.charset', 'utf8'),// 數(shù)據(jù)庫(kù)表前綴'prefix' => env('database.prefix', ''),// 數(shù)據(jù)庫(kù)部署方式:0 集中式(單一服務(wù)器),1 分布式(主從服務(wù)器)'deploy' => 0,// 數(shù)據(jù)庫(kù)讀寫是否分離 主從式有效'rw_separate' => false,// 讀寫分離后 主服務(wù)器數(shù)量'master_num' => 1,// 指定從服務(wù)器序號(hào)'slave_no' => '',// 是否嚴(yán)格檢查字段是否存在'fields_strict' => true,// 是否需要斷線重連'break_reconnect' => false,// 監(jiān)聽SQL'trigger_sql' => env('app_debug', true),// 開啟字段緩存'fields_cache' => false,],// 更多的數(shù)據(jù)庫(kù)配置信息], ];可以看到這里默認(rèn)是采用mysql數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)配置信息先去env環(huán)境配置文件里讀取,如果沒有,則使用默認(rèn)的參數(shù)。
.env文件數(shù)據(jù)庫(kù)配置(根據(jù)自己的數(shù)據(jù)庫(kù)信息修改):
二、訪問數(shù)據(jù)庫(kù)
1. 使用門面模式的Db類
新建Data控制器,這里需要注意的是使用的facade\Db類,和TP5使用的think\Db不同:
<?phpnamespace app\controller;use app\BaseController; use think\facade\Db;class Data extends BaseController {public function index(){$result = Db::table("demo")->where("id",1)->find();dump($result);} }2. 使用容器方式
$result = app("db")->table("demo")->where("id",1)->find();三、數(shù)據(jù)庫(kù)返回?cái)?shù)據(jù)異常調(diào)試
1. 打開APP_DEBUG
在.env文件中設(shè)置
APP_DEBUG = true然后瀏覽器訪問頁面會(huì)在右下角有個(gè)調(diào)試按鈕,點(diǎn)開可以看到SQL語句,如果返回?cái)?shù)據(jù)有問題,可以檢查生成的SQL語句是否有問題,也可以在可視化數(shù)據(jù)庫(kù)管理工具中運(yùn)行試下:
2. 打印SQL語句
fetchSql() 可以返回SQL語句:
$result = Db::table("demo")->where("id",1)->fetchSql()->find(); dump($result);也可以使用getLastSql靜態(tài)方法獲取SQL語句:
$result = Db::table("demo")->where("id",1)->find(); dump(Db::getLastSql());打印結(jié)果同上。
四、增刪查改CURD操作
1. 新增
public function add(){$data = ["username" => "wangwu","password" => "789"];$result = Db::table("demo")->insert($data);dump(Db::getLastSql());dump($result); }2. 刪除
public function delete(){$result = Db::table("demo")->delete(1);dump(Db::getLastSql());dump($result); }3. 更新
public function update(){$result = Db::table("demo")->where("id","2")->update(["password"=>"abc"]);dump(Db::getLastSql());dump($result); }??重磅推薦:免費(fèi)商用電商系統(tǒng)
😏想白嫖整個(gè)電商系統(tǒng)用來商用?
🤑想有自己的商城實(shí)現(xiàn)財(cái)富自由?
🤓想學(xué)習(xí)最佳實(shí)踐提升自己技術(shù)?
快來進(jìn)入🚀 傳送門 🚀,開源免費(fèi)、完整示例帶你快速入門,輕松二開,走上人生巔峰!👨?🎓
總結(jié)
以上是生活随笔為你收集整理的ThinkPHP6项目基操(6.数据库Db操作)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【二】创建版本库
- 下一篇: python mysql 内存_Pyth