コード例 #1
0
/**
 * display default values
 *
 * @param array   $column          description of column in given table
 * @param boolean $real_null_value whether column value null or not null
 *
 * @return array $real_null_value, $data, $special_chars,
 *               $backup_field, $special_chars_encoded
 */
function PMA_getSpecialCharsAndBackupFieldForInsertingMode($column, $real_null_value)
{
    if (!isset($column['Default'])) {
        $column['Default'] = '';
        $real_null_value = true;
        $data = '';
    } else {
        $data = $column['Default'];
    }
    $trueType = $column['True_Type'];
    if ($trueType == 'bit') {
        $special_chars = PMA\libraries\Util::convertBitDefaultValue($column['Default']);
    } elseif (substr($trueType, 0, 9) == 'timestamp' || $trueType == 'datetime' || $trueType == 'time') {
        $special_chars = PMA\libraries\Util::addMicroseconds($column['Default']);
    } elseif ($trueType == 'binary' || $trueType == 'varbinary') {
        $special_chars = bin2hex($column['Default']);
    } else {
        $special_chars = htmlspecialchars($column['Default']);
    }
    $backup_field = '';
    $special_chars_encoded = PMA\libraries\Util::duplicateFirstNewline($special_chars);
    return array($real_null_value, $data, $special_chars, $backup_field, $special_chars_encoded);
}
 /**
  * Test for convertBitDefaultValue
  *
  * @param string $bit Value
  * @param string $val Expected value
  *
  * @return void
  *
  * @dataProvider dataProvider
  */
 public function testConvertBitDefaultValueTest($bit, $val)
 {
     $this->assertEquals($val, PMA\libraries\Util::convertBitDefaultValue($bit));
 }
コード例 #3
0
ファイル: tracking.lib.php プロジェクト: rclakmal/phpmyadmin
/**
 * Function to get html for field
 *
 * @param int    $index index
 * @param array  $field field
 * @param string $style style
 *
 * @return string
 */
function PMA_getHtmlForField($index, $field, $style)
{
    $html = '<tr class="noclick ' . $style . '">';
    $html .= '<td>' . $index . '</td>';
    $html .= '<td><b>' . htmlspecialchars($field['Field']);
    if ($field['Key'] == 'PRI') {
        $html .= ' ' . PMA\libraries\Util::getImage('b_primary.png', __('Primary'));
    } elseif (!empty($field['Key'])) {
        $html .= ' ' . PMA\libraries\Util::getImage('bd_primary.png', __('Index'));
    }
    $html .= '</b></td>';
    $html .= "\n";
    $html .= '<td>' . htmlspecialchars($field['Type']) . '</td>';
    $html .= '<td>' . htmlspecialchars($field['Collation']) . '</td>';
    $html .= '<td>' . ($field['Null'] == 'YES' ? __('Yes') : __('No')) . '</td>';
    $html .= '<td>';
    if (isset($field['Default'])) {
        $extracted_columnspec = PMA\libraries\Util::extractColumnSpec($field['Type']);
        if ($extracted_columnspec['type'] == 'bit') {
            // here, $field['Default'] contains something like b'010'
            $html .= PMA\libraries\Util::convertBitDefaultValue($field['Default']);
        } else {
            $html .= htmlspecialchars($field['Default']);
        }
    } else {
        if ($field['Null'] == 'YES') {
            $html .= '<i>NULL</i>';
        } else {
            $html .= '<i>' . _pgettext('None for default', 'None') . '</i>';
        }
    }
    $html .= '</td>';
    $html .= '<td>' . htmlspecialchars($field['Extra']) . '</td>';
    $html .= '<td>' . htmlspecialchars($field['Comment']) . '</td>';
    $html .= '</tr>';
    return $html;
}
コード例 #4
0
             }
             break;
         case 'CURRENT_TIMESTAMP':
             $columnMeta['DefaultType'] = 'CURRENT_TIMESTAMP';
             $columnMeta['DefaultValue'] = '';
             break;
         default:
             $columnMeta['DefaultType'] = 'USER_DEFINED';
             $columnMeta['DefaultValue'] = $columnMeta['Default'];
             break;
     }
 }
 if (isset($columnMeta['Type'])) {
     $extracted_columnspec = PMA\libraries\Util::extractColumnSpec($columnMeta['Type']);
     if ($extracted_columnspec['type'] == 'bit') {
         $columnMeta['Default'] = PMA\libraries\Util::convertBitDefaultValue($columnMeta['Default']);
     }
     $type = $extracted_columnspec['type'];
     if ($length == '') {
         $length = $extracted_columnspec['spec_in_brackets'];
     }
 } else {
     // creating a column
     $columnMeta['Type'] = '';
 }
 // Variable tell if current column is bound in a foreign key constraint or not.
 // MySQL version from 5.6.6 allow renaming columns with foreign keys
 if (isset($columnMeta['Field']) && isset($form_params['table']) && PMA_MYSQL_INT_VERSION < 50606) {
     $columnMeta['column_status'] = PMA_checkChildForeignReferences($form_params['db'], $form_params['table'], $columnMeta['Field'], $foreigners, $child_references);
 }
 // some types, for example longtext, are reported as