<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] ## **路由配置** ### **配置文件地址** ``` project 應用部署目錄 ├─conf 配置文件目錄 │ └─db.php 數據庫配置信息 ``` ### **配置內容** >[info]配置信息采用數組模式 多數據庫模式采用添加數組模式實現 ``` <?php return [ 'mysql' => [ [ 'host' => '127.0.0.1', // 服務器地址 'name' => 'dbname', // 數據庫名 'user' => 'dbroot', // 用戶名 'pwd' => 'dbpassword', // 密 'prefix' => 'dh_', // 數據庫表前綴 'port' => '3309', // 端口 'dsn' => '', 'params' => '', 'charset' => 'utf8mb4', 'read_write_power' => 0, // 讀寫權限 0讀寫 1只寫 2只讀 'error_log' => true, // 是否開啟錯誤Sql保存 'sql_explain' => true, // 開啟sql性能查詢 ], ], ]; ``` ### 數據庫讀寫分離配置 >通過配置多個數據庫信息 調整·read_write_power·值實現讀寫分離操作 ``` <?php return [ 'mysql' => [ [ ... 'read_write_power' => 1, // 讀寫權限 0讀寫 1只寫 2只讀 ... ], [ ... 'read_write_power' => 2, // 讀寫權限 0讀寫 1只寫 2只讀 ... ], ], ]; ``` ## **數據庫操作** ### **創建數據庫鏈接** >調用數據庫操作類 先引用類庫 `use denha\Db;` 執行方法 `Db::table('user')` 或者執行方法 `Db::table('dh_user',['is_prefix'=>false])` 或者執行 `Db::connection()->table('user')` 最終以上方式都可以鏈接數據表 `表前綴user` ### **鏈接指定數據庫信息** `Db::connection($type,$config)->table('user')` `(string)type`指定名稱 `(array)$config` 數據庫配置信息 type類型值 | config值 | --- |--| |mysql|詳見#配置內容 |sqlite| #### ** ### **where 條件篩選操作** `where($where, $value = null, $exp = null, $mapLink = 'AND')` #### 篩選類型 | 類型 | 值 | 例:普通 | 例:數組 | | --- | --- | -- | -- | | > | > | where('id','>',string) | $map['id] = ['>',string] | | < | < | where('id','<',string) | $map['id] = ['<',string] | | >= | >= | where('id','>=',string) | $map['id] = ['>=',string] | | <= | <= | where('id','<=',string) | $map['id] = ['<=',string] | | != | != | where('id','!=',string) | $map['id] = ['!=',string] | | <> | <> | where('id','<>',string) | $map['id] = ['<>',string] | | = | = | where('id','=',string) or where('id',string)| $map['id] = ['=',string] or $map['id] = string| | like | like | where('id','like','%string%') | $map['id] = ['like','%string%'] | | instr| instr|where('id','instr',string) | $map['id] = ['instr',string] | | locate| instr|where('id','locate',string) | $map['id] = ['local',string] | | in | in | where('id','in',array) | $map['id] = ['in',array] | | not in| not in | where('id','not in',array) | $map['id] = ['not in',array] | | not insrt| not insrt| where('id','not insrt',string) | $map['id] = ['not insrt',string] | | find_in_set| find_in_set| where('id','find_in_set',string) | $map['id] = ['find_in_set',string] | |or|or|where('id','or',['>=',string])|$map['id'] = ['or','id',array('>=',string) #### = 篩選 `Db::table('user')->where('id',1)->find()` 執行結果SQL:`SELECT * FROM 表前綴_user WHERE `id` = '1' LIMIT 1` #### in 篩選 `Db::table('user')->where('id','in',['1','2','3'])->select();`· 執行結果SQL:`SELECT * FROM 表前綴_user WHERE `id` in ('1','2','3')` #### between篩選 `Db::table('user')->where('created','between',['1000','2000'])->select()` 執行結果SQL:`SELECT * FROM 表前綴_user WHERE `created` between '1000' AND '2000'` #### 組合查詢 `Db::table('user')->where('id',1)->where('status',1)->find()` 執行SQL:`SELECT * FROM 表前綴_user WHERE `id` = '1' AND `status` = '1' LIMIT 1` #### 數組組合查詢 ``` $map = []; $map['id'] = 1; $map['status'] = ['in', '1,2']; $map['created'] = ['between', ['1000', '2000']]; table('user')->where($map)->select(); ``` 執行SQL:`SELECT * FROM 表前綴_user WHERE `id` = '1' AND `status` in ('1','2') AND `created` between '1000' AND '2000'` ### **Filed 字段查詢操作** `Db::table('user')->field('id,name')->find();` 指定查詢id和name ### **Join 鏈接操作** `Db::table('user as u')->join('表前綴_user_shop as ust','u.id = ust.uid','left')->select();` 連表查詢 join必須指定全表名 ### **Limit 分頁操作** 指定顯示條數一般配合Select使用 Find 默認值顯示一條 `Db::table('user')->where($map)->limit(25,25)->select();` ### **Group 分組操作** 合并展示操作 `Db::table('user')->where($map)->group('name')->select();` ### **Order 排序操作** #### 字符串模式 `Db::table('user')->order('id desc,status asc,rand()')->select();` #### 數組模式 `Db::table('user')->order(['id'=>'desc','status'=>'asc']->order('rand()')->select();` ### **Having 操作** `Db::table('user')->where($map)->group('name')->having('SUM(moeny) >= 100')->select();` ### **OR 操作** `Db::table('user')->where('id',int)->where('name','or',string)->where('tel','!=',string)->where('sex',int)->find();` ``` $sql = Select * from user where `id` = int ( and `name` = string or `tel` != stirng ) and `sex` = int limit 1 ``` ### **Query sql執行操作** ``` $sql = 'SELECT * FROM user WHERE `id` = 1'; ``` ### **Find 單條記錄查詢** ``` // 指定字段顯示的兩種寫法 Db::table('user')->find('id,name'); Db::table('user')->field('id,name')->find(); ``` 指定字段查詢一條記錄 ### **Value 單條記錄單個字段查詢** `Db::table('user')->where($map)->value('id')` 返回 id值 ### **Lists單條記錄數組返回** `Db::table('user')->where($map)->lists('id,name')` 返回 ['id','name']; 配合list() 使用直接賦值 `list($id,$name) = Db::table('user')->where($map)->lists('id,name');` 可以直接使用`$id` `$name` ### **Select 多條記錄查詢** `Db::table('user')->where($map)->select()` 查詢多條記錄值 ### **Column 多條記錄單個字段查詢** ``` 如果field是單個字段 則返回一位數組 Db::table('user')->where($map)->column('id') 返回數據 ['1','2','3'...] 如果field是兩個字段 則第一個字段為value 第二個字段為key Db::table('user')->where($map)->column('name,id') 返回數據 ['1'=>'abc','2'=>'abc','3'=>'abcde'...] 如果field是兩個字段以上 最后一個字段作為key 所有字段作為key的一維數組 需要注意key值重復的情況下按按順行覆蓋同名key Db::table('user')->where($map)->column('id,sex,name') 返回數據 ['abc'=>['id'=>1,'name'=>'abc','sex'=>0],'abcde'=>['id'=>3,'name'=>'abcde','sex'=>1]...] 如果需要返回所有數據并指定key值參考上一條語句 Db::table('user')->where($map)->column('*,name') 返回數據 ['abc'=>['id'=>1,'name'=>'abc','sex'=>0],'abcde'=>['id'=>3,'name'=>'abcde','sex'=>1]...] ``` ### **Count 獲取記錄條數** `Db::table('user')->where($map)->count();` 獲取指定表和查詢條件的所有記錄 ### **Add 插入新數據記錄** ``` $data = []; $data['name'] = 111; $data['money'] = 0; $data['status'] = 1; Db::table('user')->add($data); ``` >添加一條新記錄記錄值 ### **Save 更新數據記錄** #### 單個字段更新 `Db::table('user')->where($map)->save('name','abc');` 更新查詢調整修改記錄的name為abc #### 普通多字段更新 ``` $data = []; $data['name'] = 111; $data['money'] = ['less',1]; $data['status'] = 1; Db::table('user')->where($map)->save($data); ``` #### 自增更新 `Db::table('user')->where($map)->save('money','add',int);` >用戶金額自增N值 n=數字 #### 自減更新 `Db::table('user')->where($map)->save('money','less',int);` ### **Type 指定字段值類型** `type($name,$type)` #### type類型參數 | 類型 | 值 | 備注 | --- | --- | -- | -- | |int|PDO::PARAM_INT | 數字類型 |str|PDO::PARAM_STR | 字符串類型 |null|PDO::PARAM_NULL| null類型 |bool|PDO::PARAM_BOOL|布爾類型 |lob|PDO::PARAM_LOB|大數據類型 >默認是 PDO::PARAM_STR 字符串類型 例子 ``` Db::table('user')->where(['status'=>1])->find(); // 當前Sql: SELECT * from 表前綴user where status= '1' limit 1 查詢的時候status是查詢的字符串 // 如果status要做數字類型查詢 Db::table('user')->where(['status'=>1])->type('status','int')->find(); // 或者 Db::table('user')->where(['status'=>1])->type(['status'=>'int'])->find(); // 當前Sql: SELECT * from 表前綴user where status= 1 limit 1 查詢的時候status是查詢的字符串 // in查詢的時候每個參數指定類型 Db::table('user')->where('status','in',[,1,'abc',0,0])->find(); // 當前Sql: SELECT * from 表前綴user where status in('1','abc','0','0') limit 1 查詢的時候status是查詢的字符串 Db::table('user')->where('status','in',[,1,'abc',0])->type('status',['int','str','bool'])->find(); // 當前Sql: SELECT * from 表前綴user where status in('1','abc',false,'0') limit 1 查詢的時候status是查詢的字符串 // 當in指定參數是4個 type指定了3個參數 后續未指定參數繼續使用str表示 // 當in指定參數是4個 type指定了1個參數 所有參數使用同一個類型 ```` ### **Delete 刪除數據記錄** `Db::table('user')->where($map)->delete();` >刪除指定查詢條件記錄 >delete操作必須指定查詢條件 防止整表刪除 ### **子查詢** `Db::childTable(Db::table('dingtalk_attendance')->where('work_id','>’,1)->field('work_id')->getSql())->where('work_id',1)->count()` 得到SQL:select count(*) as t from (select work_id from xx_dingtalk_attendance where work_id > 1) ### **事務操作** #### 開始事務 `Db::table('user')->startTrans();` #### 事務回滾 `Db::table('user')->rollback();` #### 事務提交 `Db::table('user')->commit();` ### **獲取Sql語句** ``` Db::table('user')->where('id',1)->find(); Db::getLastSql(); ``` `Db::getLastSql();` 會返回上次執行的Sql語句
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看