tbl_get_field.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * Provides download to a given field defined in parameters.
  5. *
  6. * @package PhpMyAdmin
  7. */
  8. /**
  9. * Common functions.
  10. */
  11. // we don't want the usual PMA_Response-generated HTML above the column's data
  12. define('PMA_BYPASS_GET_INSTANCE', 1);
  13. require_once 'libraries/common.inc.php';
  14. require_once 'libraries/mime.lib.php';
  15. /**
  16. * Sets globals from $_GET
  17. */
  18. $get_params = array(
  19. 'where_clause',
  20. 'transform_key'
  21. );
  22. foreach ($get_params as $one_get_param) {
  23. if (isset($_GET[$one_get_param])) {
  24. $GLOBALS[$one_get_param] = $_GET[$one_get_param];
  25. }
  26. }
  27. /* Check parameters */
  28. PMA_Util::checkParameters(
  29. array('db', 'table', 'where_clause', 'transform_key')
  30. );
  31. /* Select database */
  32. if (!PMA_DBI_select_db($db)) {
  33. PMA_Util::mysqlDie(
  34. sprintf(__('\'%s\' database does not exist.'), htmlspecialchars($db)),
  35. '', ''
  36. );
  37. }
  38. /* Check if table exists */
  39. if (!PMA_DBI_get_columns($db, $table)) {
  40. PMA_Util::mysqlDie(__('Invalid table name'));
  41. }
  42. /* Grab data */
  43. $sql = 'SELECT ' . PMA_Util::backquote($transform_key)
  44. . ' FROM ' . PMA_Util::backquote($table)
  45. . ' WHERE ' . $where_clause . ';';
  46. $result = PMA_DBI_fetch_value($sql);
  47. /* Check return code */
  48. if ($result === false) {
  49. PMA_Util::mysqlDie(__('MySQL returned an empty result set (i.e. zero rows).'), $sql);
  50. }
  51. /* Avoid corrupting data */
  52. @ini_set('url_rewriter.tags', '');
  53. PMA_downloadHeader(
  54. $table . '-' . $transform_key . '.bin',
  55. PMA_detectMIME($result),
  56. strlen($result)
  57. );
  58. echo $result;
  59. ?>