Advertisement
RapidMod

Table Compare

Jul 13th, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.15 KB | None | 0 0
  1. $allColumns = array(
  2.             "primary" => array(),
  3.             "secondary" => array()
  4.         );
  5.         $commonColumns = array(
  6.             "primary" => array(),
  7.             "secondary" => array()
  8.         );
  9.  
  10.         $missingColumns = array(
  11.             "primary" => array(),
  12.             "secondary" => array()
  13.         );
  14.  
  15.         $missingTableColumns = array(
  16.             "primary" => array(),
  17.             "secondary" => array()
  18.         );
  19.  
  20.         $tableInfo = array(
  21.             "primary" => array(),
  22.             "secondary" => array()
  23.         );
  24. $query = "SHOW TABLES LIKE '%_piece%';";
  25. $primary = "primary"; //or secondary?
  26.         while($row = $stmnt->fetch(PDO::FETCH_ASSOC)){
  27.             //echo get_called_class()."<pre>".print_r($row,1)."</pre>";
  28.             $table = $row["Tables_in_name (%_piece%)"];
  29.             if(stristr($table,"_secondary")){
  30.                 $primary = "secondary";
  31.             }else{
  32.                 $primary = "primary";
  33.             }
  34.             $columns;
  35.             $subquery = "DESCRIBE {$table};";
  36.             $substmnt = $newDB->connection()->prepare($subquery,array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
  37.             $substmnt->execute(array());
  38.             $columns = array();
  39.             while($subrow = $substmnt->fetch(PDO::FETCH_ASSOC)){
  40.                 $allColumns[$primary][$subrow["Field"]] = $subrow["Field"];
  41.                 $columns[] = $subrow["Field"];
  42.             }
  43.             $tableInfo[$primary][$table] = $columns;
  44.         }
  45.         foreach ($allColumns["primary"] as $col){
  46.             $commonColumns["primary"][$col] = $col;
  47.         }
  48.         foreach ($allColumns["secondary"] as $col){
  49.             $commonColumns["secondary"][$col] = $col;
  50.         }
  51.  
  52.         foreach ($tableInfo["primary"] as $table => $columns){
  53.             foreach ($commonColumns["primary"] as $col){
  54.                 if(!in_array($col,$columns)){
  55.                     unset($commonColumns["primary"][$col]);
  56.                     $missingColumns["primary"][] = $col;
  57.                 }
  58.             }
  59.  
  60.         }
  61.  
  62.         foreach ($tableInfo["secondary"] as $table => $columns){
  63.             foreach ($commonColumns["secondary"] as $col){
  64.                 if(!in_array($col,$columns)){
  65.                     unset($commonColumns["secondary"][$col]);
  66.                     $missingColumns["secondary"][] = $col;
  67.                 }
  68.             }
  69.  
  70.         }
  71.  
  72.         foreach ($tableInfo["primary"] as $table => $columns){
  73.             foreach ($missingColumns["primary"] as $missing){
  74.                 if(!in_array($missing,$columns)){
  75.                     if(!isset($missingTableColumns["primary"][$table])){
  76.                         $missingTableColumns["primary"][$table] = array($missing);
  77.                     }else{
  78.                         $missingTableColumns["primary"][$table][] = $missing;
  79.                     }
  80.                 }
  81.             }
  82.         }
  83.         foreach ($tableInfo["secondary"] as $table => $columns){
  84.             foreach ($missingColumns["secondary"] as $missing){
  85.                 if(!in_array($missing,$columns)){
  86.                     if(!isset($missingTableColumns["secondary"][$table])){
  87.                         $missingTableColumns["secondary"][$table] = array($missing);
  88.                     }else{
  89.                         $missingTableColumns["secondary"][$table][] = $missing;
  90.                     }
  91.                 }
  92.             }
  93.         }
  94.  
  95.  
  96.         $x = array(
  97.             "stats" => array(
  98.                 "primary_column_count" => count($allColumns["primary"]),
  99.                 "primary_common_column_count" => count($commonColumns["primary"]),
  100.                 "secondary_column_count" => count($allColumns["secondary"]),
  101.                 "secondary_common_column_count" => count($commonColumns["secondary"]),
  102.                 "missing_columns" => $missingColumns,
  103.                 "missing_table_columns" => $missingTableColumns,
  104.                 "all_columns"=>$allColumns
  105.             ),
  106.             "info" => $tableInfo
  107.         );
  108.         echo "<pre>".print_r($x,1)."</pre>";
  109.         die("done");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement