$allColumns = array( "primary" => array(), "secondary" => array() ); $commonColumns = array( "primary" => array(), "secondary" => array() ); $missingColumns = array( "primary" => array(), "secondary" => array() ); $missingTableColumns = array( "primary" => array(), "secondary" => array() ); $tableInfo = array( "primary" => array(), "secondary" => array() ); $query = "SHOW TABLES LIKE '%_piece%';"; $primary = "primary"; //or secondary? while($row = $stmnt->fetch(PDO::FETCH_ASSOC)){ //echo get_called_class()."
".print_r($row,1).""; $table = $row["Tables_in_name (%_piece%)"]; if(stristr($table,"_secondary")){ $primary = "secondary"; }else{ $primary = "primary"; } $columns; $subquery = "DESCRIBE {$table};"; $substmnt = $newDB->connection()->prepare($subquery,array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true)); $substmnt->execute(array()); $columns = array(); while($subrow = $substmnt->fetch(PDO::FETCH_ASSOC)){ $allColumns[$primary][$subrow["Field"]] = $subrow["Field"]; $columns[] = $subrow["Field"]; } $tableInfo[$primary][$table] = $columns; } foreach ($allColumns["primary"] as $col){ $commonColumns["primary"][$col] = $col; } foreach ($allColumns["secondary"] as $col){ $commonColumns["secondary"][$col] = $col; } foreach ($tableInfo["primary"] as $table => $columns){ foreach ($commonColumns["primary"] as $col){ if(!in_array($col,$columns)){ unset($commonColumns["primary"][$col]); $missingColumns["primary"][] = $col; } } } foreach ($tableInfo["secondary"] as $table => $columns){ foreach ($commonColumns["secondary"] as $col){ if(!in_array($col,$columns)){ unset($commonColumns["secondary"][$col]); $missingColumns["secondary"][] = $col; } } } foreach ($tableInfo["primary"] as $table => $columns){ foreach ($missingColumns["primary"] as $missing){ if(!in_array($missing,$columns)){ if(!isset($missingTableColumns["primary"][$table])){ $missingTableColumns["primary"][$table] = array($missing); }else{ $missingTableColumns["primary"][$table][] = $missing; } } } } foreach ($tableInfo["secondary"] as $table => $columns){ foreach ($missingColumns["secondary"] as $missing){ if(!in_array($missing,$columns)){ if(!isset($missingTableColumns["secondary"][$table])){ $missingTableColumns["secondary"][$table] = array($missing); }else{ $missingTableColumns["secondary"][$table][] = $missing; } } } } $x = array( "stats" => array( "primary_column_count" => count($allColumns["primary"]), "primary_common_column_count" => count($commonColumns["primary"]), "secondary_column_count" => count($allColumns["secondary"]), "secondary_common_column_count" => count($commonColumns["secondary"]), "missing_columns" => $missingColumns, "missing_table_columns" => $missingTableColumns, "all_columns"=>$allColumns ), "info" => $tableInfo ); echo "
".print_r($x,1).""; die("done");