# We are missing a table somewhere if (count($table) != 4) { foreach ($table as $tbl) { $envs[$tbl['environment']] = true; unset($missing_envs[$tbl['environment']]); } $diff->{$table_key}->missing->environments = array_values($missing_envs); } else { $envs = $missing_envs; $missing_envs = []; } # Getting the columns for each table foreach ($table as $tbl) { if (isset($columns_data->{$tbl['name']})) { foreach ($columns_data->{$tbl['name']} as $key => $value) { $details = column_type_reverse($value['Type']); $value['Type'] = $details->Type; $value['Maxlength'] = $details->Maxlength; $value['Values'] = $details->Enums; $value['Range'] = $details->Range; $value['Namelock'] = in_array($value['Field'], explode(',', NQ_LOCKED_FIELDS)); $columns_data->{$tbl['name']}->{$key} = $value; } # Adding to our diff columns foreach ($columns_data->{$tbl['name']} as $key => $value) { # Creating our object if (!isset($diff_columns->{NQ_TABLE_DIFF_PREFIX . $value['Field']})) { $diff_columns->{NQ_TABLE_DIFF_PREFIX . $value['Field']} = new stdClass(); } # Storing the values $diff_columns->{NQ_TABLE_DIFF_PREFIX . $value['Field']}->{$tbl['environment']} = $value;
$col = 'id'; } $attached_links->{$col}->link_references[] = $attached_data; } } # Getting our data $content = new stdClass(); $query = 'SHOW FULL COLUMNS IN ' . NQ_DATABASE_STORAGE_DATABASE . '.`' . NQ_DATABASE_STRUCTURE_PREFIX . $G_TABLE_DETAILS['app_id'] . '_' . $G_TABLE_DETAILS['id'] . '`'; $result = mysqli_multi_result_query($G_STORAGE_CONTROLLER_DBLINK, $query); $rcount = mysqli_num_rows($result); if ($rcount > 0) { # Getting our object and converting our types $content = mysqli_fetch_all($result, MYSQLI_ASSOC); foreach ($content as $key => $value) { # Orignizing the column details $details = column_type_reverse($content[$key]['Type']); $content[$key]['Default'] = $details->Type == 'bool' ? $content[$key]['Default'] == "b'1'" ? true : false : $content[$key]['Default']; $content[$key]['Linkable'] = stripos($details->Type, 'int') !== false && !in_array($content[$key]['Field'], explode(',', NQ_LOCKED_FIELDS)) ? 'single' : ($content[$key]['Field'] == 'id' ? 'multiple' : false); $content[$key]['Links'] = isset($attached_links->{$content[$key]['Field']}->links) ? $attached_links->{$content[$key]['Field']}->links : []; $content[$key]['LinkReferences'] = isset($attached_links->{$content[$key]['Field']}->link_references) ? $attached_links->{$content[$key]['Field']}->link_references : []; $content[$key]['Type'] = $details->Type; $content[$key]['Maxlength'] = $details->Maxlength; $content[$key]['Values'] = $details->Enums; $content[$key]['Range'] = $details->Range; $content[$key]['Namelock'] = in_array($content[$key]['Field'], explode(',', NQ_LOCKED_FIELDS)); # No need to send these unset($content[$key]['Privileges'], $content[$key]['Collation']); } # Object and ids if (isset($_CGET['resultset']) && in_array($_CGET['resultset'], ['obj', 'object'])) { $ids = [];
if ($show_count) { $content->pages = PostParser::create_attribute($pages); $content->count = PostParser::create_attribute($matched_count); } # Adding our column structure if (isset($_CGET['columnsstructure']) && $_CGET['columnsstructure'] == 'true') { # Getting our column data $query = "SHOW FULL COLUMNS IN " . NQ_DATABASE_STORAGE_DATABASE . ".`" . NQ_DATABASE_STRUCTURE_PREFIX . $G_APP_DATA['id'] . '_' . $G_TABLE_DETAILS['id'] . "`"; $result = mysqli_multi_result_query($G_STORAGE_CONTROLLER_DBLINK, $query); # Structure Object $struct = new stdClass(); # Getting our object and converting our types $structure = mysqli_fetch_all($result, MYSQLI_ASSOC); foreach ($structure as $key => $value) { # Orignizing the column details $details = column_type_reverse($structure[$key]['Type']); $structure[$key]['Type'] = $details->Type; $structure[$key]['Maxlength'] = $details->Maxlength; $structure[$key]['Values'] = $details->Enums; $structure[$key]['Range'] = $details->Range; $structure[$key]['Namelock'] = in_array($structure[$key]['Field'], explode(',', NQ_LOCKED_FIELDS)); # No need to send these unset($structure[$key]['Privileges'], $structure[$key]['Collation']); # Saving for future use $struct->{$structure[$key]['Field']} = $structure[$key]; } # Adding partition if needed if (ADD_PARTITION_COLUMN) { $struct->partition = []; $struct->partition['Field'] = 'partition'; $struct->partition['Type'] = 'string';