コード例 #1
0
ファイル: update.php プロジェクト: nuQuery/v1m0-api-all
        }
        # 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) {
        break;
    }
}
mysqli_free_result($partition_results);
# Returning our values
コード例 #2
0
                $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
            $info = mysqli_info_array($partition->dblink);
            $content->affected_rows += (int) $info['Changed'];
            $content->matched_rows += (int) $info['Rows matched'];
        }
    }
}
# Returning our values
PostParser::send($content);
/* --- Connection closed wit PostParser::send --- Below this point things need to be tracked and cleaned up --- */
# Updating our partition row counts
$size_changed = false;
$update_queries = ['SET @table_size_delta=0'];