예제 #1
0
     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);
 # Getting our updated info
 $info = mysqli_info_array($partition_dblink);
 $limit -= (int) $info['Rows matched'];
 # Tracking our internal changed numbers
 $content->affected_rows += (int) $info['Changed'];
 $content->matched_rows += (int) $info['Rows matched'];
 # We are done updating
 if ($limit !== false && $limit <= 0) {
예제 #2
0
 if ($query === false) {
     # New query parser
     $query = new MySQLParser($partition->dblink, $partition->data['table_name'], $partition->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 fields and the partition columns
     $query->blacklist_columns(explode(',', NQ_LOCKED_FIELDS));
     $query->blacklist_columns(explode(',', $partition->data['partition_column']));
 }
 # Adding our update columns
 $query->add_update_columns($row);
 # Adding our global session values
 if (isset($G_TOKEN_SESSION_DATA->{NQ_SESSION_GROUP}->global->{$G_TABLE_DETAILS['alias']})) {
     $query->add_where_columns($G_TOKEN_SESSION_DATA->{NQ_SESSION_GROUP}->global->{$G_TABLE_DETAILS['alias']});
 }
 # Adding our specific session values
 if (isset($G_TOKEN_SESSION_DATA->{NQ_SESSION_GROUP}->update->{$G_TABLE_DETAILS['alias']})) {
     $query->add_where_columns($G_TOKEN_SESSION_DATA->{NQ_SESSION_GROUP}->update->{$G_TABLE_DETAILS['alias']});
 }
 # Where columns
 $query->add_where_columns(['id' => $row->id]);
 # Updating the partition
 $query->set_table($partition->data['table_name'], false, false, $partition->database);
 $update_query = $query->get_update_query(1);
 mysqli_sub_query($partition->dblink, $update_query);
 # Updating the response data