Improved MySQL 4.1 support
This commit is contained in:
@@ -3,6 +3,11 @@
|
||||
// vim: expandtab sw=4 ts=4 sts=4:
|
||||
|
||||
|
||||
// Get available character sets (MySQL >= 4.1)
|
||||
if (PMA_MYSQL_INT_VERSION >= 40100 && !defined('PMA_MYSQL_CHARSETS_LIB_INCLUDED')) {
|
||||
include('./libraries/mysql_charsets.lib.php3');
|
||||
}
|
||||
|
||||
?>
|
||||
<?php if ($cfg['CtrlArrowsMoving']) { ?>
|
||||
<!-- Set on key handler for moving using by Ctrl+arrows -->
|
||||
@@ -79,6 +84,9 @@ $content_cells = array();
|
||||
$header_cells[] = $strField;
|
||||
$header_cells[] = $strType . '<br /><span style="font-weight: normal">' . PMA_showMySQLDocu('Reference', 'Column_types') . '</span>';
|
||||
$header_cells[] = $strLengthSet;
|
||||
if (PMA_MYSQL_INT_VERSION >= 40100) {
|
||||
$header_cells[] = $strCharset;
|
||||
}
|
||||
$header_cells[] = $strAttr;
|
||||
$header_cells[] = $strNull;
|
||||
$header_cells[] = $strDefault . '**';
|
||||
@@ -183,6 +191,9 @@ for ($i = 0 ; $i < $num_fields; $i++) {
|
||||
|
||||
// Cell index: If certain fields get left out, the counter shouldn't chage.
|
||||
$ci = 0;
|
||||
// Everytime a cell shall be left out the STRG-jumping feature, $ci_offset
|
||||
// has to be incremented ($ci_offset++)
|
||||
$ci_offset = -1;
|
||||
|
||||
if ($is_backup) {
|
||||
$backup_field = (isset($true_selected) && $true_selected[$i] ? $true_selected[$i] : (isset($row) && isset($row['Field']) ? urlencode($row['Field']) : ''));
|
||||
@@ -191,9 +202,9 @@ for ($i = 0 ; $i < $num_fields; $i++) {
|
||||
$content_cells[$i][$ci] = '';
|
||||
}
|
||||
|
||||
$content_cells[$i][$ci] .= "\n" . '<input id="field_' . $i . '_1" type="text" name="field_name[]" size="10" maxlength="64" value="' . (isset($row) && isset($row['Field']) ? str_replace('"', '"', $row['Field']) : '') . '" class="textfield" />';
|
||||
$content_cells[$i][$ci] .= "\n" . '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '" type="text" name="field_name[]" size="10" maxlength="64" value="' . (isset($row) && isset($row['Field']) ? str_replace('"', '"', $row['Field']) : '') . '" class="textfield" />';
|
||||
$ci++;
|
||||
$content_cells[$i][$ci] = '<select name="field_type[]" id="field_' . $i . '_2">' . "\n";
|
||||
$content_cells[$i][$ci] = '<select name="field_type[]" id="field_' . $i . '_' . ($ci - $ci_offset) . '">' . "\n";
|
||||
|
||||
if (empty($row['Type'])) {
|
||||
$row['Type'] = '';
|
||||
@@ -211,13 +222,10 @@ for ($i = 0 ; $i < $num_fields; $i++) {
|
||||
$type = eregi_replace('ZEROFILL', '', $type);
|
||||
$type = eregi_replace('UNSIGNED', '', $type);
|
||||
|
||||
$length = $type;
|
||||
$type = chop(eregi_replace('\\(.*\\)', '', $type));
|
||||
if (!empty($type)) {
|
||||
$length = eregi_replace("^$type\(", '', $length);
|
||||
$length = eregi_replace('\)$', '', trim($length));
|
||||
}
|
||||
if ($length == $type) {
|
||||
if (strpos($type, '(')) {
|
||||
$length = chop(substr($type, (strpos($type, '(') + 1), (strpos($type, ')') - strpos($type, '(') - 1)));
|
||||
$type = chop(substr($type, 0, strpos($type, '(')));
|
||||
} else {
|
||||
$length = '';
|
||||
}
|
||||
} // end if else
|
||||
@@ -243,11 +251,9 @@ for ($i = 0 ; $i < $num_fields; $i++) {
|
||||
$content_cells[$i][$ci] = '';
|
||||
}
|
||||
|
||||
$content_cells[$i][$ci] .= "\n" . '<input id="field_' . $i . '_3" type="text" name="field_length[]" size="8" value="' . str_replace('"', '"', $length) . '" class="textfield" />' . "\n";
|
||||
$content_cells[$i][$ci] .= "\n" . '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '" type="text" name="field_length[]" size="8" value="' . str_replace('"', '"', $length) . '" class="textfield" />' . "\n";
|
||||
$ci++;
|
||||
|
||||
$content_cells[$i][$ci] = '<select name="field_attribute[]" id="field_' . $i . '_4">' . "\n";
|
||||
|
||||
if (eregi('^(set|enum)$', $type)) {
|
||||
$binary = 0;
|
||||
$unsigned = 0;
|
||||
@@ -257,6 +263,33 @@ for ($i = 0 ; $i < $num_fields; $i++) {
|
||||
$unsigned = eregi('UNSIGNED', $row['Type'], $test_attribute2);
|
||||
$zerofill = eregi('ZEROFILL', $row['Type'], $test_attribute3);
|
||||
}
|
||||
|
||||
if (PMA_MYSQL_INT_VERSION >= 40100) {
|
||||
$content_cells[$i][$ci] = '<select name="field_charset[]" id="field_' . $i . '_' . ($ci - $ci_offset) . '">' . "\n"
|
||||
. ' <option value=""></option>' . "\n";
|
||||
if (!empty($row['Collation']) && (
|
||||
strtolower(substr($type, 0, 4)) == 'char'
|
||||
|| strtolower(substr($type, 0, 7)) == 'varchar'
|
||||
|| strtolower(substr($type, 0, 4)) == 'text'
|
||||
|| strtolower(substr($type, 0, 8)) == 'tinytext'
|
||||
|| strtolower(substr($type, 0, 10)) == 'mediumtext'
|
||||
|| strtolower(substr($type, 0, 8)) == 'longtext'
|
||||
) && !$binary) {
|
||||
$real_charset = strpos($row['Collation'], '_') ? substr($row['Collation'], 0, strpos($row['Collation'], '_')) : $row['Collation'];
|
||||
} else {
|
||||
$real_charset = '';
|
||||
}
|
||||
for ($j = 0; isset($mysql_charsets[$j]); $j++) {
|
||||
$content_cells[$i][$ci] .= ' <option value="' . $mysql_charsets[$j] . '"' . ($mysql_charsets[$j] == $real_charset ? ' selected="selected"' : '') . '>' . $mysql_charsets[$j] . '</option>' . "\n";
|
||||
}
|
||||
unset($j);
|
||||
unset($real_charset);
|
||||
$content_cells[$i][$ci] .= '</select>' . "\n";
|
||||
$ci++;
|
||||
}
|
||||
|
||||
$content_cells[$i][$ci] = '<select name="field_attribute[]" id="field_' . $i . '_' . ($ci - $ci_offset) . '">' . "\n";
|
||||
|
||||
$strAttribute = '';
|
||||
if ($binary) {
|
||||
$strAttribute = 'BINARY';
|
||||
@@ -273,17 +306,17 @@ for ($i = 0 ; $i < $num_fields; $i++) {
|
||||
}
|
||||
|
||||
for ($j = 0;$j < count($cfg['AttributeTypes']); $j++) {
|
||||
$content_cells[$i][3] .= ' <option value="'. $cfg['AttributeTypes'][$j] . '"';
|
||||
$content_cells[$i][$ci] .= ' <option value="'. $cfg['AttributeTypes'][$j] . '"';
|
||||
if (strtoupper($strAttribute) == strtoupper($cfg['AttributeTypes'][$j])) {
|
||||
$content_cells[$i][3] .= ' selected="selected"';
|
||||
$content_cells[$i][$ci] .= ' selected="selected"';
|
||||
}
|
||||
$content_cells[$i][3] .= '>' . $cfg['AttributeTypes'][$j] . '</option>' . "\n";
|
||||
$content_cells[$i][$ci] .= '>' . $cfg['AttributeTypes'][$j] . '</option>' . "\n";
|
||||
}
|
||||
|
||||
$content_cells[$i][$ci] .= '</select>';
|
||||
$ci++;
|
||||
|
||||
$content_cells[$i][$ci] = '<select name="field_null[]" id="field_' . $i . '_5">';
|
||||
$content_cells[$i][$ci] = '<select name="field_null[]" id="field_' . $i . '_' . ($ci - $ci_offset) . '">';
|
||||
|
||||
if ((!isset($row) || empty($row['Null']) || $row['Null'] == 'NOT NULL') && $submit_null == FALSE) {
|
||||
$content_cells[$i][$ci] .= "\n";
|
||||
@@ -304,15 +337,15 @@ for ($i = 0 ; $i < $num_fields; $i++) {
|
||||
}
|
||||
|
||||
if ($is_backup) {
|
||||
$content_cells[$i][5] = "\n" . '<input type="hidden" name="field_default_orig[]" size="8" value="' . (isset($row) && isset($row['Default']) ? urlencode($row['Default']) : '') . '" />';
|
||||
$content_cells[$i][$ci] = "\n" . '<input type="hidden" name="field_default_orig[]" size="8" value="' . (isset($row) && isset($row['Default']) ? urlencode($row['Default']) : '') . '" />';
|
||||
} else {
|
||||
$content_cells[$i][5] = "\n";
|
||||
$content_cells[$i][$ci] = "\n";
|
||||
}
|
||||
|
||||
$content_cells[$i][$ci] .= '<input id="field_' . $i . '_6" type="text" name="field_default[]" size="8" value="' . (isset($row) && isset($row['Default']) ? str_replace('"', '"', $row['Default']) : '') . '" class="textfield" />';
|
||||
$content_cells[$i][$ci] .= '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '" type="text" name="field_default[]" size="8" value="' . (isset($row) && isset($row['Default']) ? str_replace('"', '"', $row['Default']) : '') . '" class="textfield" />';
|
||||
$ci++;
|
||||
|
||||
$content_cells[$i][$ci] = '<select name="field_extra[]" id="field_' . $i . '_7">';
|
||||
$content_cells[$i][$ci] = '<select name="field_extra[]" id="field_' . $i . '_' . ($ci - $ci_offset) . '">';
|
||||
|
||||
if(!isset($row) || empty($row['Extra'])) {
|
||||
$content_cells[$i][$ci] .= "\n";
|
||||
@@ -329,13 +362,13 @@ for ($i = 0 ; $i < $num_fields; $i++) {
|
||||
|
||||
// garvin: comments
|
||||
if ($cfgRelation['commwork']) {
|
||||
$content_cells[$i][$ci] = '<input id="field_' . $i . '_7" type="text" name="field_comments[]" size="8" value="' . (isset($row) && isset($row['Field']) && is_array($comments_map) && isset($comments_map[$row['Field']]) ? htmlspecialchars($comments_map[$row['Field']]) : '') . '" class="textfield" />';
|
||||
$content_cells[$i][$ci] = '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '" type="text" name="field_comments[]" size="8" value="' . (isset($row) && isset($row['Field']) && is_array($comments_map) && isset($comments_map[$row['Field']]) ? htmlspecialchars($comments_map[$row['Field']]) : '') . '" class="textfield" />';
|
||||
$ci++;
|
||||
}
|
||||
|
||||
// garvin: MIME-types
|
||||
if ($cfgRelation['mimework'] && $cfg['BrowseMIME'] && $cfgRelation['commwork']) {
|
||||
$content_cells[$i][$ci] = '<select id="field_' . $i . '_8" size="1" name="field_mimetype[]">' . "\n";
|
||||
$content_cells[$i][$ci] = '<select id="field_' . $i . '_' . ($ci - $ci_offset) . '" size="1" name="field_mimetype[]">' . "\n";
|
||||
$content_cells[$i][$ci] .= ' <option value=""></option>' . "\n";
|
||||
$content_cells[$i][$ci] .= ' <option value="auto">auto-detect</option>' . "\n";
|
||||
|
||||
@@ -350,7 +383,7 @@ for ($i = 0 ; $i < $num_fields; $i++) {
|
||||
$content_cells[$i][$ci] .= '</select>';
|
||||
$ci++;
|
||||
|
||||
$content_cells[$i][$ci] = '<select id="field_' . $i . '_9" size="1" name="field_transformation[]">' . "\n";
|
||||
$content_cells[$i][$ci] = '<select id="field_' . $i . '_' . ($ci - $ci_offset) . '" size="1" name="field_transformation[]">' . "\n";
|
||||
$content_cells[$i][$ci] .= ' <option value="" title="' . $strNone . '"></option>' . "\n";
|
||||
if (is_array($available_mime['transformation'])) {
|
||||
@reset($available_mime['transformation']);
|
||||
@@ -365,7 +398,7 @@ for ($i = 0 ; $i < $num_fields; $i++) {
|
||||
$content_cells[$i][$ci] .= '</select>';
|
||||
$ci++;
|
||||
|
||||
$content_cells[$i][$ci] = '<input id="field_' . $i . '_10" type="text" name="field_transformation_options[]" size="8" value="' . (isset($row) && isset($row['Field']) && isset($mime_map[$row['Field']]['transformation_options']) ? htmlspecialchars($mime_map[$row['Field']]['transformation_options']) : '') . '" class="textfield" />';
|
||||
$content_cells[$i][$ci] = '<input id="field_' . $i . '_' . ($ci - $ci_offset) . '" type="text" name="field_transformation_options[]" size="8" value="' . (isset($row) && isset($row['Field']) && isset($mime_map[$row['Field']]['transformation_options']) ? htmlspecialchars($mime_map[$row['Field']]['transformation_options']) : '') . '" class="textfield" />';
|
||||
$ci++;
|
||||
}
|
||||
|
||||
@@ -494,6 +527,10 @@ if ($action == 'tbl_create.php3' && PMA_MYSQL_INT_VERSION >= 32300) {
|
||||
<td width="25"> </td>
|
||||
<td><?php echo $strTableType; ?> :</td>
|
||||
<?php
|
||||
if (PMA_MYSQL_INT_VERSION >= 40100) {
|
||||
echo ' <td width="25"> </td>' . "\n"
|
||||
. ' <td>' . $strCharset . ' :</td>' . "\n";
|
||||
}
|
||||
}
|
||||
echo "\n";
|
||||
?>
|
||||
@@ -555,6 +592,17 @@ if ($action == 'tbl_create.php3' && PMA_MYSQL_INT_VERSION >= 32300) {
|
||||
</select>
|
||||
</td>
|
||||
<?php
|
||||
if (PMA_MYSQL_INT_VERSION >= 40100) {
|
||||
echo ' <td width="25"> </td>' . "\n"
|
||||
. ' <td>' . "\n"
|
||||
. ' <select name="tbl_charset">' . "\n";
|
||||
for ($i = 0; isset($mysql_charsets[$i]); $i++) {
|
||||
echo ' <option value="' . $mysql_charsets[$i] . '"' . ($mysql_charsets[$i] == 'latin1' ? ' selected="selected"' : '') . '>' . $mysql_charsets[$i] . '</option>' . "\n";
|
||||
}
|
||||
unset($i);
|
||||
echo ' </select>' . "\n"
|
||||
. ' </td>' . "\n";
|
||||
}
|
||||
}
|
||||
echo "\n";
|
||||
?>
|
||||
@@ -606,4 +654,4 @@ if ($cfgRelation['commwork'] && $cfgRelation['mimework'] && $cfg['BrowseMIME'])
|
||||
</table>
|
||||
<br />
|
||||
|
||||
<center><?php echo PMA_showMySQLDocu('Reference', 'CREATE_TABLE'); ?></center>
|
||||
<center><?php echo PMA_showMySQLDocu('Reference', 'CREATE_TABLE'); ?></center>
|
Reference in New Issue
Block a user