$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()."<pre>".print_r($row,1)."</pre>";
$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 "<pre>".print_r($x,1)."</pre>";
die("done");
Comments