sql >> データベース >  >> RDS >> Mysql

mysqlデータベースをループする

    いくつかの大まかなコード。デバッグもテストもされていません...

    $masterDBHost = 'localhost';
    $masterDBUser = 'username';
    $masterDBPass = 'somethingSecret';
    $masterDBName = 'theDBname';
    
    $sqlToPerformOnEachDatabases = 'SELECT 1';
    
    // Connect to the Master Database
    if( !( $master = mysql_connect( $masterDBHost , $masterDBUser , $masterDBPass ) ) )
      die( 'MySQL Error - Cannot Connect to Master Server' );
    if( !mysql_select_db( $masterDBName , $master ) )
      die( 'MySQL Error - Cannot Connect to Master Database' );
    
    // Get the Other Databases to Connect to
    $databases = mysql_query( 'SELECT * FROM `databaseTable`' , $master );
    
    // Check your Results
    if( !$databases || mysql_num_rows( $databases )==0 ){
      # Nothing to work with
      echo 'Unable to find Databases to Access';
    }else{
      # Something to work with
      while( $d = mysql_fetch_assoc( $databases ) ){
        // Connect to the Client Server
        if( !( $temp = mysql_connect( $d['host'] , $d['user'] , $d['pass'] ) ) ){
          # Can't connect to the Server
          echo 'MySQL Error - Failed to connect to '.$d['host'].' as '.$d['user'];
        }elseif( !mysql_select_db( $d['base'] , $temp ) ){
          # Can't connect to the Database
          echo 'MySQL Error - Failed to connect to '.$d['base'].' on '.$d['host'].' as '.$d['user'];
        }elseif( !mysql_query( $sqlToPerformOnEachDatabases , $temp ) ){
          # Your Command, well, stuffed up
          echo 'MySQL Error - Your Command Stuffed Up';
        }else{
          # Your Command worked OK
          echo 'All Good!';
        }
        # Close the connection (probably not needed, but nice to do)
        @mysql_close( $temp );
      }
    }
    

    バージョン2

    同じホスト/ユーザー/パスが使用されている場合でも接続を維持できます

    繰り返しますが、デバッグもテストもされていません。

    $masterDBHost = 'localhost';
    $masterDBUser = 'username';
    $masterDBPass = 'somethingSecret';
    $masterDBName = 'theDBname';
    
    $sqlToPerformOnEachDatabases = 'SELECT 1';
    
    // Connect to the Master Database
    if( !( $master = mysql_connect( $masterDBHost , $masterDBUser , $masterDBPass ) ) )
      die( 'MySQL Error - Cannot Connect to Master Server' );
    if( !mysql_select_db( $masterDBName , $master ) )
      die( 'MySQL Error - Cannot Connect to Master Database' );
    
    // Get the Other Databases to Connect to
    $databases = mysql_query( 'SELECT * FROM `databaseTable`' , $master );
    
    // Check your Results
    if( !$databases || mysql_num_rows( $databases )==0 ){
      # Nothing to work with
      echo 'Unable to find Databases to Access';
    }else{
      # Something to work with
      // A variable for the MySQL Connection
      $temp = false;
      // Declare some short-term memory
      $last = array();
      while( $d = mysql_fetch_assoc( $databases ) ){
        // Check Last Loop's details
        if( $temp
            && $last
            && array_diff( $last , $d ) ){
          // New Host, User or Pass
          @mysql_close( $temp );
          $last = false;
        }
        // Connect to the Client Server
        if( !$last
            && !( $temp = mysql_connect( $d['host'] , $d['user'] , $d['pass'] ) ) ){
          # Can't connect to the Server
          echo 'MySQL Error - Failed to connect to '.$d['host'].' as '.$d['user'];
        }elseif( !mysql_select_db( $d['base'] , $temp ) ){
          # Can't connect to the Database
          echo 'MySQL Error - Failed to connect to '.$d['base'].' on '.$d['host'].' as '.$d['user'];
        }elseif( !mysql_query( $sqlToPerformOnEachDatabases , $temp ) ){
          # Your Command, well, stuffed up
          echo 'MySQL Error - Your Command Stuffed Up';
        }else{
          # Your Command worked OK
          echo 'All Good!';
        }
        # Remember this Loop's details
        $last = $d;
      }
      @mysql_close( $temp );
    }
    


    1. SQLiteOpenHelperクラスを使用してsqliteデータベースからアイテムを削除する方法

    2. MySQL、Postgres、Aurora用のサーバーレスGraphQLAPIを作成する方法

    3. LaravelでwhereHasを使用しているときに、サブクエリからSUMを選択します

    4. OracleDatabase19cのオプティマイザ