/** * Analyze the table column array * * @param array $column description of column in given table * @param array $comments_map comments for every column that has a comment * @param boolean $timestamp_seen whether a timestamp has been seen * * @return array description of column in given table */ function PMA_analyzeTableColumnsArray($column, $comments_map, $timestamp_seen) { $column['Field_html'] = htmlspecialchars($column['Field']); $column['Field_md5'] = md5($column['Field']); // True_Type contains only the type (stops at first bracket) $column['True_Type'] = preg_replace('@\\(.*@s', '', $column['Type']); PMA_getDefaultForDatetime($column); $column['len'] = preg_match('@float|double@', $column['Type']) ? 100 : -1; $column['Field_title'] = PMA_getColumnTitle($column, $comments_map); $column['is_binary'] = PMA_isColumnBinary($column); $column['is_blob'] = PMA_isColumnBlob($column); $column['is_char'] = PMA_isColumnChar($column); list($column['pma_type'], $column['wrap'], $column['first_timestamp']) = PMA_getEnumSetAndTimestampColumns($column, $timestamp_seen); return $column; }
/** * Test for PMA_isColumnBlob * * @return void */ public function testIsColumnBlob() { $column = array(); $column['Type'] = 'blob'; $this->assertEquals('blob', PMA_isColumnBlob($column)); $column['Type'] = 'bloB'; $this->assertEquals('bloB', PMA_isColumnBlob($column)); $column['Type'] = 'mediumBloB'; $this->assertEquals('BloB', PMA_isColumnBlob($column)); $column['Type'] = 'tinyblobabc'; $this->assertEquals('blobabc', PMA_isColumnBlob($column)); $column['Type'] = 'longblob'; $this->assertEquals('blob', PMA_isColumnBlob($column)); $column['Type'] = 'foolongblobbar'; $this->assertFalse(PMA_isColumnBlob($column)); }
$html_output = ''; // Set if we passed the first timestamp field $timestamp_seen = false; $columns_cnt = count($table_columns); $tabindex = 0; $tabindex_for_function = +3000; $tabindex_for_null = +6000; $tabindex_for_value = 0; $o_rows = 0; $biggest_max_file_size = 0; $url_params['db'] = $db; $url_params['table'] = $table; $url_params = PMA_urlParamsInEditMode($url_params, $where_clause_array, $where_clause); $has_blob_field = false; foreach ($table_columns as $column) { if (PMA_isColumnBlob($column)) { $has_blob_field = true; break; } } //Insert/Edit form //If table has blob fields we have to disable ajax. $html_output .= PMA_getHtmlForInsertEditFormHeader($has_blob_field, $is_upload); $html_output .= PMA_URL_getHiddenInputs($_form_params); $titles['Browse'] = PMA_Util::getIcon('b_browse.png', __('Browse foreign values')); // user can toggle the display of Function column and column types // (currently does not work for multi-edits) if (!$cfg['ShowFunctionFields'] || !$cfg['ShowFieldTypesInDataEditView']) { $html_output .= __('Show'); } if (!$cfg['ShowFunctionFields']) {