From e8a6b1af54c401e259c4cffe93b3ff340cc2d8d8 Mon Sep 17 00:00:00 2001 From: Sebastian Mendel Date: Tue, 6 May 2008 14:04:54 +0000 Subject: [PATCH] new function to rename a field in relation tables (from tbl_alter.php) --- libraries/relation.lib.php | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/libraries/relation.lib.php b/libraries/relation.lib.php index dcf91683c..11d473b9a 100644 --- a/libraries/relation.lib.php +++ b/libraries/relation.lib.php @@ -1087,4 +1087,48 @@ function PMA_getRelatives($from) return true; } // end of the "PMA_getRelatives()" function +/** + * Rename a field in relation tables + * + * usually called after a field in a table was renamed in tbl_alter.php + * + * @uses PMA_getRelationsParam() + * @uses PMA_backquote() + * @uses PMA_sqlAddslashes() + * @uses PMA_query_as_cu() + * @param string $db + * @param string $table + * @param string $field + * @param string $new_name + */ +function PMA_REL_renameField($db, $table, $field, $new_name) +{ + $cfgRelation = PMA_getRelationsParam(); + + if ($cfgRelation['displaywork']) { + $table_query = 'UPDATE ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['table_info']) + . ' SET display_field = \'' . PMA_sqlAddslashes($new_name) . '\'' + . ' WHERE db_name = \'' . PMA_sqlAddslashes($db) . '\'' + . ' AND table_name = \'' . PMA_sqlAddslashes($table) . '\'' + . ' AND display_field = \'' . PMA_sqlAddslashes($field) . '\''; + PMA_query_as_cu($table_query); + } + + if ($cfgRelation['relwork']) { + $table_query = 'UPDATE ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['relation']) + . ' SET master_field = \'' . PMA_sqlAddslashes($new_name) . '\'' + . ' WHERE master_db = \'' . PMA_sqlAddslashes($db) . '\'' + . ' AND master_table = \'' . PMA_sqlAddslashes($table) . '\'' + . ' AND master_field = \'' . PMA_sqlAddslashes($field) . '\''; + PMA_query_as_cu($table_query); + + $table_query = 'UPDATE ' . PMA_backquote($cfgRelation['db']) . '.' . PMA_backquote($cfgRelation['relation']) + . ' SET foreign_field = \'' . PMA_sqlAddslashes($new_name) . '\'' + . ' WHERE foreign_db = \'' . PMA_sqlAddslashes($db) . '\'' + . ' AND foreign_table = \'' . PMA_sqlAddslashes($table) . '\'' + . ' AND foreign_field = \'' . PMA_sqlAddslashes($field) . '\''; + PMA_query_as_cu($table_query); + } // end if relwork +} + ?>