tp5-5 연결, 조작, 디버깅 데이터베이스

183229 단어 데이터베이스
동적 연결 & 모델 클래스 정의 사용하기
모델을 조작할 때 지정한 데이터베이스 연결을 자동으로 연결합니다. 설정 파일에 설정된 기본 연결 정보가 아니라
1 구성 파일 config를 적용합니다.php에 그룹 설정 추가
 
  1.     'machine'=> [             //              'type'        => 'mysql',             //              'hostname'    => '127.0.0.1',             //              'database'    => 'machine',             //              'username'    => 'root',             //              'password'    => 'root',             //  utf8             'charset'     => 'utf8',             //              'prefix'      => '',         ],     'rbac'=>'mysql://root:root@localhost:3306/rbac#utf8',  
     
     
      
    1. $machine = Db::connect('machine')->query('select * from admin_users where id=1');
    2.  
    3. $rbac = Db::connect('rbac')->query('select * from role where id=1');

    1. php
    2. namespace app\admin\model;   use think\Model; use think\Db;   class Access extends Model { protected $connection = [             //              'type'        => 'mysql',             //              'hostname'    => '127.0.0.1',             //              'database'    => 'rbac',             //              'username'    => 'root',             //              'password'    => 'root',             //  utf8             'charset'     => 'utf8',             //              'prefix'      => '',         ];      } 4
       
        
      1. public function useMode()
      2. {
      3. $a = new Access;
      4. dump($a::all());
      5. dump($a->query('select * from role where id=1'));
      6. $res = $a->table('access')->where('id','1')->find();
      7. dump($res);
      8.  
      9. }

       

      1

      table

      1. use think\Db; // table Db::table('think_user')->where('id',1)->find(); find  null   Db::table('think_user')->where('status',1)->select(); select  name       'prefix' => 'think_',   table
         
          
        1. Db::name('user')->where('id',1)->find();
        2. Db::name('user')->where('status',1)->select();

         

        2 sql

        1. //------------------------------- //                         | //------------------------------- dump(Db::getLastSql());   //------------------------------- //   ->fetchSql()      | //------------------------------- $data = Db::table('user')->fetchSql()->where($map)->select();   
          3 sql 1  execute  


           
            
          1. public function insert()
          2. {
          3. $res = Db::execute("insert into user(username,password) values(' ','12345')");
          4. $res = Db::execute("insert into user(username,password) values(:name,:pa)",['name'=>' ','pa'=>'666']);
          5. dump($res);
          6. }

           


           

          1. public function delete() {    $res = Db::execute('delete from user where id >:id',['id'=>6]);    dump($res); }  
             
             
             
              
            1. public function update()
            2. {
            3. $res = Db::execute('update user set username=:name where id >=:id',['id'=>5,'name'=>' ']);
            4.     dump($res);
            5. }

             

             

            1. think\Db; // $result = Db::query('select * from think_user where id>? and id',[0,3]);   $result = Db::query('select * from user where id>:id1 and id<=:id2',['id1'=>0,'id2'=>3]);  
                Db  db ->find() ->select() 1             ( where( ))     like     whereOr    limit 2    limit 2,3     order               count sum find( )           field true     column select find   page   group   having   join     DISTINCT     cache  , cache 방법은 별도로 지정할 수 있습니다. fetchSql SQL
               
                
              1. php
              2. use think\Db;
              3. $map['id']  = ['>',1];
              4. $map['username'] = ['like','%u%'];
              5. $map['status'] = 0;
              6. // 
              7. $data = Db::table('user')->where($map)->select(); 
              8.  
              9.  
              10. $data = Db::table('user')->where('id','10')->select();
              11.  
              12. // 
              13. $data = db('user')->where('id','10')->select();
              14. $data = db('user')->where('id','>=','4')->where('id',','9')->select();
              15. $data = db('user')->where('username','like','%u%')->where('id',','6')->select();
              16. $data = db('user')->where('id','>=','6')->whereOr('id','<=','2')->select();
              17. $data fetchSql= db('user')->where('id','>=','6')->whereOr('id','<=','2')->limit(2)->select();
              18. $data = db('user')->where('id','>=','6')->whereOr('id','<=','1')->limit(2,3)->select();
              19. $data = db('user')->where('id','>=','1')->whereOr('id','<=','1')->limit(2,6)->order('id','desc')->select();
              20. $data = db('user')->field('username nameis,count(*) as cou')->where('id','>=','1')->whereOr('id','<=','1')->limit(2,6)->order('id','desc')->select();
              21. $data = db('user')->field('count(*) as cou')->where('id','>=','1')->whereOr('id','<=','1')->limit(2,6)->order('id','desc')->find();
              22. $data = db('user')->field('username,password',true)->select();
              23.  
              24. //  column , , ,
              25. $data = db('user')->where('username','like','%u%')->column('username,password,status');
              26. /** page 
              27.  *  page(1,5)   :
              28.  *  page(2,5)   :
              29.  */
              30. $data = db('user')->page('2,5')->select();
              31. //group      having 
              32. $data = Db::table('user')->field('status,count(*) as co')->group('status')->select();
              33. $data = Db::table('user')->field('status,count(*) as co')->group('status')->having('co > 2')->select();
              34.  
              35. //join
              36. $data = Db::table('user')->alias('u')
              37.   ->where('u.id=:iidd',['iidd'=>1])
              38.   ->field('u.username,ur.role_id,r.name')
              39.   ->join('user_role ur','ur.uid=u.id')
              40.   ->join('role r','r.id=ur.role_id')
              41.   ->select();
              42.   
              43. // DISTINCT   
              44. Db::table('user')->distinct(true)->field('username')->select();
              45. //
              46. $data = Db::table('user')->where('id','10')->cache(true)->select();
              47. $data = Db::table('user')->where('id','10')->cache(60)->select();  // 60
              48.  
              49. // cache :
              50. $data = Db::table('user')->cache('key',60)->find();
              51. $data = \think\Cache::get('key');
              52.  
              53. //fetch
              54. $data = Db::table('user')->fetchSql(true)->find(1);
              55. result SELECT * FROM think_user where id = 1
              56.  
              57.  
              58.  

               

              1 getLastInsID() insert($data);

              2  insertGetId  getLastInsID() insert  

               

              1. php
              2. $data = [       'username'=>' ',       'password'=>'5555'         ]; $resutl = Db::table('user')->insert($data); //    $userId = Db::name('user')->getLastInsID(); // $resutl = Db::table('user')->insertGetId($data);   // $data = [             [ 'username'=>' ','password'=>'5555'],             [ 'username'=>' ','password'=>'5555'],         ]; $resutl = Db::table('user')->insertAll($data);  strong>  
                 
                  
                1. php
                2. $data = [
                3.             'username'=>' ','password'=>'erere',
                4.          ];
                5. $resutl = Db::table('user')->where('id', 2)->update($data);

                p;\

                 

                1. php
                2. // $result = Db::table('user')->delete([12,13,14]); // $result = Db::table("user")->where('password','=','1111111')->delete();  
                   
                  1 count( ) 2 max( ) 3 min( ) 4 avg( ) 5 sum( )
                   
                    
                  1. php
                  2. $result = Db::table('user')->where('status','=','0')->count();
                  3.  
                  4. $result = Db::table('user')->where('status','=','0')->avg('id');

                   

                   

                  1. php
                  2. whereTime whereTime , :   //  Db::table('think_user')->whereTime('birthday', '>=', '1970-10-1')->select(); //  Db::table('think_user')->whereTime('birthday', ', '2000-10-1')->select(); //  Db::table('think_user')->whereTime('birthday', 'between', ['1970-10-1', '2000-10-1'])->select(); //  Db::table('think_user')->whereTime('birthday', 'not between', ['1970-10-1', '2000-10-1'])->select(); , :   //  Db::table('think_blog') ->whereTime('create_time', 'today')->select(); //  Db::table('think_blog')->whereTime('create_time', 'yesterday')->select(); //  Db::table('think_blog')->whereTime('create_time', 'week')->select();    //  Db::table('think_blog')->whereTime('create_time', 'last week')->select();     //  Db::table('think_blog')->whereTime('create_time', 'month')->select();    //  Db::table('think_blog')->whereTime('create_time', 'last month')->select();       //  Db::table('think_blog')->whereTime('create_time', 'year')->select();     //  Db::table('think_blog')->whereTime('create_time', 'last year')->select();      、 、 , :   //  Db::table('think_blog')->whereTime('create_time', 'd')->select(); //  Db::table('think_blog')->whereTime('create_time', 'w')->select();    //  Db::table('think_blog')->whereTime('create_time', 'm')->select();    //  Db::table('think_blog')->whereTime('create_time', 'y') ->select();     V5.0.5+ ,   //  Db::table('think_blog')->whereTime('create_time','-2 hours')->select();  
                     
                     
                      
                    1. php
                    2. $id = input($id);
                    3. $result = Db::table('banner_item')
                    4.         ->where(function($query) use ($id){
                    5.             $query->where('banner_id','=',$id);
                    6.         })
                    7.         ->select();strong>

                     

                     5

                    mysql innodb

                     

                    1. php
                    2. use think\Db; //          Db::startTrans();         try{             $a = Db::table('user')->delete(29);             if(!$a)throw new \Exception(' ');                                     $b = Db::table('user')->delete(90);                          if(!$b)throw new \Exception(' ');             //              Db::commit();             echo ' ';                      } catch (\Exception $e) {             echo $e->getMessage();             //              Db::rollback();         } //         Db::startTrans();         $a = Db::table('user')->delete(26);         $b = Db::table('user')->delete(90);          if($a && $b)         {             Db::commit();         }         else         {             Db::rollback();         }         echo ' ';  
                       
                      application/database.php
                      //데이터베이스 디버그 모드    'debug'           => true,
                       application/config.php 로그 열기
                       
                      //로그 열기    'log'                    => [
                      //로그 기록 방식, 파일 소켓 내장 지원 확장 'type' = > 'file',//정상 File는 열려 있는 테스트이고 닫기 //로그 저장 디렉토리        'path'  => LOG_PATH,
                      //로깅 레벨         'level' => ['sql'],
                          ],

좋은 웹페이지 즐겨찾기