'); } /** * Outputs export header * * @return bool Whether it suceeded * * @access public */ function PMA_exportHeader() { global $charset, $charset_of_file; return PMA_exportOutputHandler(' '); } /** * Outputs database header * * @param string Database name * * @return bool Whether it suceeded * * @access public */ function PMA_exportDBHeader($db) { return PMA_exportOutputHandler('

' . $GLOBALS['strDatabase'] . ' ' . $db . '

'); } /** * Outputs database footer * * @param string Database name * * @return bool Whether it suceeded * * @access public */ function PMA_exportDBFooter($db) { return TRUE; } /** * Outputs create database database * * @param string Database name * * @return bool Whether it suceeded * * @access public */ function PMA_exportDBCreate($db) { return TRUE; } /** * Outputs the content of a table in CSV format * * @param string the database name * @param string the table name * @param string the end of line sequence * @param string the url to go back in case of error * @param string SQL query for obtaining data * * @return bool Whether it suceeded * * @access public */ function PMA_exportData($db, $table, $crlf, $error_url, $sql_query) { global $what; if (!PMA_exportOutputHandler('

' . $GLOBALS['strDumpingData'] . ' ' .$table . '

')) return FALSE; if (!PMA_exportOutputHandler('')) return FALSE; // Gets the data from the database $result = PMA_DBI_query($sql_query, NULL, PMA_DBI_QUERY_UNBUFFERED); $fields_cnt = PMA_DBI_num_fields($result); // If required, get fields name at the first line if (isset($GLOBALS[$what . '_shownames']) && $GLOBALS[$what . '_shownames'] == 'yes') { $schema_insert = ''; for ($i = 0; $i < $fields_cnt; $i++) { $schema_insert .= ''; } // end for $schema_insert .= ''; if (!PMA_exportOutputHandler($schema_insert)) return FALSE; } // end if // Format the data while ($row = PMA_DBI_fetch_row($result)) { $schema_insert = ''; for ($j = 0; $j < $fields_cnt; $j++) { if (!isset($row[$j]) || is_null($row[$j])) { $value = $GLOBALS[$what . '_replace_null']; } else if ($row[$j] == '0' || $row[$j] != '') { $value = $row[$j]; } else { $value = ''; } $schema_insert .= ''; } // end for $schema_insert .= ''; if (!PMA_exportOutputHandler($schema_insert)) return FALSE; } // end while PMA_DBI_free_result($result); if (!PMA_exportOutputHandler('
')) return FALSE; return TRUE; } function PMA_exportStructure($db, $table, $crlf, $error_url, $do_relation = false, $do_comments = false, $do_mime = false, $dates = false) { global $cfgRelation; if (!PMA_exportOutputHandler('

' . $GLOBALS['strTableStructure'] . ' ' .$table . '

')) return FALSE; /** * Get the unique keys in the table */ $keys_query = 'SHOW KEYS FROM ' . PMA_backquote($table) . ' FROM '. PMA_backquote($db); $keys_result = PMA_DBI_query($keys_query); $unique_keys = array(); while ($key = PMA_DBI_fetch_assoc($keys_result)) { if ($key['Non_unique'] == 0) $unique_keys[] = $key['Column_name']; } PMA_DBI_free_result($keys_result); /** * Gets fields properties */ PMA_DBI_select_db($db); $local_query = 'SHOW FIELDS FROM ' . PMA_backquote($db) . '.' . PMA_backquote($table); $result = PMA_DBI_query($local_query); $fields_cnt = PMA_DBI_num_rows($result); // Check if we can use Relations (Mike Beck) if ($do_relation && !empty($cfgRelation['relation'])) { // Find which tables are related with the current one and write it in // an array $res_rel = PMA_getForeigners($db, $table); if ($res_rel && count($res_rel) > 0) { $have_rel = TRUE; } else { $have_rel = FALSE; } } else { $have_rel = FALSE; } // end if /** * Displays the table structure */ if (!PMA_exportOutputHandler('')) return FALSE; $columns_cnt = 4; if ($do_relation && $have_rel) { $columns_cnt++; } if ($do_comments && $cfgRelation['commwork']) { $columns_cnt++; } if ($do_mime && $cfgRelation['mimework']) { $columns_cnt++; } $schema_insert = ''; $schema_insert .= ''; $schema_insert .= ''; $schema_insert .= ''; $schema_insert .= ''; if ($do_relation && $have_rel) { $schema_insert .= ''; } if ($do_comments && $cfgRelation['commwork']) { $schema_insert .= ''; $comments = PMA_getComments($db, $table); } if ($do_mime && $cfgRelation['mimework']) { $schema_insert .= ''; $mime_map = PMA_getMIME($db, $table, true); } $schema_insert .= ''; if (!PMA_exportOutputHandler($schema_insert)) return FALSE; while ($row = PMA_DBI_fetch_assoc($result)) { $schema_insert = ''; $type = $row['Type']; // reformat mysql query output - staybyte - 9. June 2001 // loic1: set or enum types: slashes single quotes inside options if (eregi('^(set|enum)\((.+)\)$', $type, $tmp = array())) { $tmp[2] = substr(ereg_replace('([^,])\'\'', '\\1\\\'', ',' . $tmp[2]), 1); $type = $tmp[1] . '(' . str_replace(',', ', ', $tmp[2]) . ')'; $type_nowrap = ''; $binary = 0; $unsigned = 0; $zerofill = 0; } else { $type_nowrap = ' nowrap="nowrap"'; $type = eregi_replace('BINARY', '', $type); $type = eregi_replace('ZEROFILL', '', $type); $type = eregi_replace('UNSIGNED', '', $type); if (empty($type)) { $type = ' '; } $binary = eregi('BINARY', $row['Type'], $test = array()); $unsigned = eregi('UNSIGNED', $row['Type'], $test = array()); $zerofill = eregi('ZEROFILL', $row['Type'], $test = array()); } $strAttribute = ' '; if ($binary) { $strAttribute = 'BINARY'; } if ($unsigned) { $strAttribute = 'UNSIGNED'; } if ($zerofill) { $strAttribute = 'UNSIGNED ZEROFILL'; } if (!isset($row['Default'])) { if ($row['Null'] != '') { $row['Default'] = 'NULL'; } } else { $row['Default'] = $row['Default']; } $fmt_pre = ''; $fmt_post = ''; if (in_array($row['Field'], $unique_keys)) { $fmt_pre = '' . $fmt_pre; $fmt_post = $fmt_post . ''; } if ($row['Key']=='PRI') { $fmt_pre = '' . $fmt_pre; $fmt_post = $fmt_post . ''; } $schema_insert .= ''; $schema_insert .= ''; $schema_insert .= ''; $schema_insert .= ''; $field_name = $row['Field']; if ($do_relation && $have_rel) { $schema_insert .= ''; } if ($do_comments && $cfgRelation['commwork']) { $schema_insert .= ''; } if ($do_mime && $cfgRelation['mimework']) { $schema_insert .= ''; } $schema_insert .= ''; if (!PMA_exportOutputHandler($schema_insert)) return FALSE; } // end while PMA_DBI_free_result($result); return PMA_exportOutputHandler('
'); } ?>