Exemple #1
0
 if (!isset($partitions_affected->{$to_partition->data['id']})) {
     $partitions_affected->{$to_partition->data['id']} = (object) ['data' => $to_partition->data, 'database' => $to_partition->database, 'dblink' => $to_partition->dblink, 'table_id' => $G_TO_TABLE_SETTINGS['id'], 'inserted_rows' => 0, 'deleted_rows' => 0];
 }
 # We need to create the to query
 if ($to_query === false) {
     # Creating our new parser
     $to_query = new MySQLParser($to_partition->dblink, $to_partition->data['table_name'], $to_partition->database);
     # Checking for whitelisting
     if (NQ_WHITELIST_COLUMNS) {
         $whitelist = get_whitelist_columns($G_CONTROLLER_DBLINK, $G_APP_DATA['id'], $G_TO_TABLE_SETTINGS['id'], $G_TOKEN_PRIVILEGE_DATA['id']);
         if (NQ_WHITELIST_EXISTENTIAL ? count($whitelist) > 0 : true) {
             $to_query->whitelist_columns($whitelist);
         }
     }
     # Blacklisting the timestamp
     $to_query->blacklist_columns(['timestamp']);
     # Adding our duplicate columns
     if (isset($_CGET['duplicate'])) {
         $to_query->add_insert_duplicate_columns(explode(',', $_CGET['duplicate']));
     }
     # Adding our duplicate ignore columns
     if (isset($_CGET['duplicate_ignore'])) {
         $to_query->add_insert_duplicate_columns(explode(',', $_CGET['duplicate_ignore']));
     }
 }
 # Creating our auto-increment id
 $insert_query = "\tINSERT INTO\n\t\t\t\t\t\t\t" . NQ_DATABASE_STORAGE_DATABASE . ".`" . NQ_DATABASE_PARTITION_PREFIX . $G_APP_DATA['id'] . "_" . $G_TO_TABLE_DETAILS['id'] . "_" . $to_partition->data['number'] . "`\n\t\t\t\t\t\tSET\n\t\t\t\t\t\t\t`data`=0";
 mysqli_sub_query($G_STORAGE_CONTROLLER_DBLINK, $insert_query);
 $entry->id = ($to_partition->data['number'] << $to_bitmask[0]) + mysqli_insert_id($G_STORAGE_CONTROLLER_DBLINK);
 # Adding our insert columns
 $to_query->clear_insert_columns();
Exemple #2
0
 # Connecting to our dblinks
 $partition_dblink = mysqli_shared_connect($partition_data['host'], $partition_data['username'], $partition_data['password'], $G_SHARED_DBLINKS);
 $partitions_affected->{$partition_data['id']} = (object) ['data' => $partition_data, 'dblink' => $partition_dblink, 'database' => $partition_data['database']];
 # First partition, new query object
 if ($query === false) {
     # Creating our new parser
     $query = new MySQLParser($partition_dblink, $partition_data['table_name'], $partition_data['database']);
     # Checking for whitelisting
     if (NQ_WHITELIST_COLUMNS) {
         $whitelist = get_whitelist_columns($G_CONTROLLER_DBLINK, $G_APP_DATA['id'], $G_TABLE_DETAILS['id'], $G_TOKEN_PRIVILEGE_DATA['id']);
         if (NQ_WHITELIST_EXISTENTIAL ? count($whitelist) > 0 : true) {
             $query->whitelist_columns($whitelist);
         }
     }
     # Blacklisting the locked and partitioned fields
     $query->blacklist_columns(explode(',', NQ_LOCKED_FIELDS));
     $query->blacklist_columns(explode(',', $partition_data['partition_column']));
     # Order by
     if (isset($_CGET['order'])) {
         $order_sort = isset($_CGET['ordersort']) ? explode(',', $_CGET['ordersort']) : [];
         $query->add_order_by(explode(',', $_CGET['order']), $order_sort);
     }
     # Adding our update columns
     $query->add_update_columns(PostParser::decode());
     # Where columns
     $query->add_where_columns($_CGET);
 }
 # Updating our partition
 $query->set_table($partition_data['table_name'], false, false, $partition_data['database']);
 $update_query = $query->get_update_query($limit, false, false);
 mysqli_sub_query($partition_dblink, $update_query);
Exemple #3
0
 $dblink = mysqli_shared_connect($partition_data['host'], $partition_data['username'], $partition_data['password'], $G_SHARED_DBLINKS);
 # Adding our tracking
 $G_READ_PARTITION_IDS[] = $partition_data['id'];
 # We need to create a new query
 if ($query == false) {
     # Creating our new parser
     $query = new MySQLParser($dblink, $partition_data['table_name'], $partition_data['database']);
     # Checking for whitelisting
     if (NQ_WHITELIST_COLUMNS) {
         $whitelist = get_whitelist_columns($G_CONTROLLER_DBLINK, $G_APP_DATA['id'], $table_settings['id'], $G_TOKEN_DATA['id']);
         if (NQ_WHITELIST_EXISTENTIAL ? count($whitelist) > 0 : true) {
             $query->whitelist_columns($whitelist);
         }
     }
     # Excluding from the table
     $query->blacklist_columns($G_COLUMNS_EXCLUDED);
     # Adding our select columns
     $select_columns = $G_COLUMNS_SELECTED;
     if ($select_columns != '*' && !in_array($attached['column'], $select_columns)) {
         $select_columns[] = $attached['column'];
         $unset_link_id = true;
     }
     $query->add_select_columns($select_columns, false, $table_settings['alias'], true);
     # Where columns
     $query->add_where_columns([$attached['column'] => '[]' . implode(',', $column_values)], false, $table_settings['alias']);
     # Order by
     if ($G_ORDER_BY !== false) {
         $query->add_order_by($G_ORDER_BY, $G_ORDER_DESC, false, $table_settings['alias']);
     }
 }
 # Getting our results