relation_cleanup.lib.php 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  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'])
  25. . '.' . PMA_Util::backquote($cfgRelation['column_info'])
  26. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  27. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  28. . ' AND column_name = \'' . PMA_Util::sqlAddSlashes($column) . '\'';
  29. PMA_queryAsControlUser($remove_query);
  30. }
  31. if ($cfgRelation['displaywork']) {
  32. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  33. . '.' . PMA_Util::backquote($cfgRelation['table_info'])
  34. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  35. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  36. . ' AND display_field = \'' . PMA_Util::sqlAddSlashes($column) . '\'';
  37. PMA_queryAsControlUser($remove_query);
  38. }
  39. if ($cfgRelation['relwork']) {
  40. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  41. . '.' . PMA_Util::backquote($cfgRelation['relation'])
  42. . ' WHERE master_db = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  43. . ' AND master_table = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  44. . ' AND master_field = \'' . PMA_Util::sqlAddSlashes($column) . '\'';
  45. PMA_queryAsControlUser($remove_query);
  46. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  47. . '.' . PMA_Util::backquote($cfgRelation['relation'])
  48. . ' WHERE foreign_db = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  49. . ' AND foreign_table = \'' . PMA_Util::sqlAddSlashes($table) . '\''
  50. . ' AND foreign_field = \'' . PMA_Util::sqlAddSlashes($column) . '\'';
  51. PMA_queryAsControlUser($remove_query);
  52. }
  53. }
  54. /**
  55. * Cleanup table related relation stuff
  56. *
  57. * @param string $db database name
  58. * @param string $table table name
  59. *
  60. * @return void
  61. */
  62. function PMA_relationsCleanupTable($db, $table)
  63. {
  64. $cfgRelation = PMA_getRelationsParam();
  65. if ($cfgRelation['commwork']) {
  66. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  67. . '.' . PMA_Util::backquote($cfgRelation['column_info'])
  68. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  69. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  70. PMA_queryAsControlUser($remove_query);
  71. }
  72. if ($cfgRelation['displaywork']) {
  73. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  74. . '.' . PMA_Util::backquote($cfgRelation['table_info'])
  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['pdfwork']) {
  80. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  81. . '.' . PMA_Util::backquote($cfgRelation['table_coords'])
  82. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  83. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  84. PMA_queryAsControlUser($remove_query);
  85. }
  86. if ($cfgRelation['designerwork']) {
  87. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  88. . '.' . PMA_Util::backquote($cfgRelation['designer_coords'])
  89. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  90. . ' AND table_name = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  91. PMA_queryAsControlUser($remove_query);
  92. }
  93. if ($cfgRelation['relwork']) {
  94. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  95. . '.' . PMA_Util::backquote($cfgRelation['relation'])
  96. . ' WHERE master_db = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  97. . ' AND master_table = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  98. PMA_queryAsControlUser($remove_query);
  99. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  100. . '.' . PMA_Util::backquote($cfgRelation['relation'])
  101. . ' WHERE foreign_db = \'' . PMA_Util::sqlAddSlashes($db) . '\''
  102. . ' AND foreign_table = \'' . PMA_Util::sqlAddSlashes($table) . '\'';
  103. PMA_queryAsControlUser($remove_query);
  104. }
  105. }
  106. /**
  107. * Cleanup database related relation stuff
  108. *
  109. * @param string $db database name
  110. *
  111. * @return void
  112. */
  113. function PMA_relationsCleanupDatabase($db)
  114. {
  115. $cfgRelation = PMA_getRelationsParam();
  116. if ($cfgRelation['commwork']) {
  117. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  118. . '.' . PMA_Util::backquote($cfgRelation['column_info'])
  119. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  120. PMA_queryAsControlUser($remove_query);
  121. }
  122. if ($cfgRelation['bookmarkwork']) {
  123. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  124. . '.' . PMA_Util::backquote($cfgRelation['bookmark'])
  125. . ' WHERE dbase = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  126. PMA_queryAsControlUser($remove_query);
  127. }
  128. if ($cfgRelation['displaywork']) {
  129. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  130. . '.' . PMA_Util::backquote($cfgRelation['table_info'])
  131. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  132. PMA_queryAsControlUser($remove_query);
  133. }
  134. if ($cfgRelation['pdfwork']) {
  135. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  136. . '.' . PMA_Util::backquote($cfgRelation['pdf_pages'])
  137. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  138. PMA_queryAsControlUser($remove_query);
  139. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  140. . '.' . PMA_Util::backquote($cfgRelation['table_coords'])
  141. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  142. PMA_queryAsControlUser($remove_query);
  143. }
  144. if ($cfgRelation['designerwork']) {
  145. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  146. . '.' . PMA_Util::backquote($cfgRelation['designer_coords'])
  147. . ' WHERE db_name = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  148. PMA_queryAsControlUser($remove_query);
  149. }
  150. if ($cfgRelation['relwork']) {
  151. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  152. . '.' . PMA_Util::backquote($cfgRelation['relation'])
  153. . ' WHERE master_db = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  154. PMA_queryAsControlUser($remove_query);
  155. $remove_query = 'DELETE FROM ' . PMA_Util::backquote($cfgRelation['db'])
  156. . '.' . PMA_Util::backquote($cfgRelation['relation'])
  157. . ' WHERE foreign_db = \'' . PMA_Util::sqlAddSlashes($db) . '\'';
  158. PMA_queryAsControlUser($remove_query);
  159. }
  160. }
  161. ?>