relation_cleanup.lib.php 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * Set of functions used for cleaning up phpMyAdmin tables
  5. *
  6. * @package PhpMyAdmin
  7. */
  8. if (! defined('PHPMYADMIN')) {
  9. exit;
  10. }
  11. /**
  12. * Cleanup column related relation stuff
  13. *
  14. * @param string $db database name
  15. * @param string $table table name
  16. * @param string $column column name
  17. *
  18. * @return void
  19. */
  20. function PMA_relationsCleanupColumn($db, $table, $column)
  21. {
  22. $cfgRelation = PMA_getRelationsParam();
  23. if ($cfgRelation['commwork']) {
  24. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['column_info'])
  25. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  26. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  27. . ' AND column_name = \'' . PMA_Util::sqlAddSlashes($column) . '\'';
  28. PMA_queryAsControlUser($remove_query);
  29. }
  30. if ($cfgRelation['displaywork']) {
  31. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['table_info'])
  32. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  33. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  34. . ' AND display_field = \'' . PMA_Util::sqlAddSlashes($column) . '\'';
  35. PMA_queryAsControlUser($remove_query);
  36. }
  37. if ($cfgRelation['relwork']) {
  38. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['relation'])
  39. . ' WHERE master_db = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  40. . ' AND master_table = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  41. . ' AND master_field = \'' . PMA_Util::sqlAddSlashes($column) . '\'';
  42. PMA_queryAsControlUser($remove_query);
  43. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['relation'])
  44. . ' WHERE foreign_db = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  45. . ' AND foreign_table = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  46. . ' AND foreign_field = \'' . PMA_Util::sqlAddSlashes($column) . '\'';
  47. PMA_queryAsControlUser($remove_query);
  48. }
  49. }
  50. /**
  51. * Cleanup table related relation stuff
  52. *
  53. * @param string $db database name
  54. * @param string $table table name
  55. *
  56. * @return void
  57. */
  58. function PMA_relationsCleanupTable($db, $table)
  59. {
  60. $cfgRelation = PMA_getRelationsParam();
  61. if ($cfgRelation['commwork']) {
  62. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['column_info'])
  63. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  64. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  65. PMA_queryAsControlUser($remove_query);
  66. }
  67. if ($cfgRelation['displaywork']) {
  68. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['table_info'])
  69. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  70. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  71. PMA_queryAsControlUser($remove_query);
  72. }
  73. if ($cfgRelation['pdfwork']) {
  74. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['table_coords'])
  75. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  76. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  77. PMA_queryAsControlUser($remove_query);
  78. }
  79. if ($cfgRelation['designerwork']) {
  80. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['designer_coords'])
  81. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  82. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  83. PMA_queryAsControlUser($remove_query);
  84. }
  85. if ($cfgRelation['relwork']) {
  86. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['relation'])
  87. . ' WHERE master_db = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  88. . ' AND master_table = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  89. PMA_queryAsControlUser($remove_query);
  90. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['relation'])
  91. . ' WHERE foreign_db = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  92. . ' AND foreign_table = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  93. PMA_queryAsControlUser($remove_query);
  94. }
  95. }
  96. /**
  97. * Cleanup database related relation stuff
  98. *
  99. * @param string $db database name
  100. *
  101. * @return void
  102. */
  103. function PMA_relationsCleanupDatabase($db)
  104. {
  105. $cfgRelation = PMA_getRelationsParam();
  106. if ($cfgRelation['commwork']) {
  107. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['column_info'])
  108. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  109. PMA_queryAsControlUser($remove_query);
  110. }
  111. if ($cfgRelation['bookmarkwork']) {
  112. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['bookmark'])
  113. . ' WHERE dbase = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  114. PMA_queryAsControlUser($remove_query);
  115. }
  116. if ($cfgRelation['displaywork']) {
  117. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['table_info'])
  118. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  119. PMA_queryAsControlUser($remove_query);
  120. }
  121. if ($cfgRelation['pdfwork']) {
  122. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['pdf_pages'])
  123. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  124. PMA_queryAsControlUser($remove_query);
  125. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['table_coords'])
  126. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  127. PMA_queryAsControlUser($remove_query);
  128. }
  129. if ($cfgRelation['designerwork']) {
  130. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['designer_coords'])
  131. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  132. PMA_queryAsControlUser($remove_query);
  133. }
  134. if ($cfgRelation['relwork']) {
  135. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['relation'])
  136. . ' WHERE master_db = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  137. PMA_queryAsControlUser($remove_query);
  138. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['relation'])
  139. . ' WHERE foreign_db = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  140. PMA_queryAsControlUser($remove_query);
  141. }
  142. }
  143. ?>