public function updateInternalRelations($multi_edit_columns_name, $destination_db, $destination_table, $destination_column, $cfgRelation, $existrel)
{
$updated = false;
foreach ($destination_db as $master_field_md5 => $foreign_db) {
$upd_query = null;
// Map the fieldname's md5 back to its real name
$master_field = $multi_edit_columns_name[$master_field_md5];
$foreign_table = $destination_table[$master_field_md5];
$foreign_field = $destination_column[$master_field_md5];
if (!empty($foreign_db) && !empty($foreign_table) && !empty($foreign_field)) {
if (!isset($existrel[$master_field])) {
$upd_query = 'INSERT INTO ' . Util::backquote($GLOBALS['cfgRelation']['db']) . '.' . Util::backquote($cfgRelation['relation']) . '(master_db, master_table, master_field, foreign_db,' . ' foreign_table, foreign_field)' . ' values(' . '\'' . $GLOBALS['dbi']->escapeString($this->_db_name) . '\', ' . '\'' . $GLOBALS['dbi']->escapeString($this->_name) . '\', ' . '\'' . $GLOBALS['dbi']->escapeString($master_field) . '\', ' . '\'' . $GLOBALS['dbi']->escapeString($foreign_db) . '\', ' . '\'' . $GLOBALS['dbi']->escapeString($foreign_table) . '\',' . '\'' . $GLOBALS['dbi']->escapeString($foreign_field) . '\')';
} elseif ($existrel[$master_field]['foreign_db'] != $foreign_db || $existrel[$master_field]['foreign_table'] != $foreign_table || $existrel[$master_field]['foreign_field'] != $foreign_field) {
$upd_query = 'UPDATE ' . Util::backquote($GLOBALS['cfgRelation']['db']) . '.' . Util::backquote($cfgRelation['relation']) . ' SET foreign_db = \'' . $GLOBALS['dbi']->escapeString($foreign_db) . '\', ' . ' foreign_table = \'' . $GLOBALS['dbi']->escapeString($foreign_table) . '\', ' . ' foreign_field = \'' . $GLOBALS['dbi']->escapeString($foreign_field) . '\' ' . ' WHERE master_db = \'' . $GLOBALS['dbi']->escapeString($this->_db_name) . '\'' . ' AND master_table = \'' . $GLOBALS['dbi']->escapeString($this->_name) . '\'' . ' AND master_field = \'' . $GLOBALS['dbi']->escapeString($master_field) . '\'';
}
// end if... else....
} elseif (isset($existrel[$master_field])) {
$upd_query = 'DELETE FROM ' . Util::backquote($GLOBALS['cfgRelation']['db']) . '.' . Util::backquote($cfgRelation['relation']) . ' WHERE master_db = \'' . $GLOBALS['dbi']->escapeString($this->_db_name) . '\'' . ' AND master_table = \'' . $GLOBALS['dbi']->escapeString($this->_name) . '\'' . ' AND master_field = \'' . $GLOBALS['dbi']->escapeString($master_field) . '\'';
}
// end if... else....
if (isset($upd_query)) {
$this->_dbi->query($upd_query, $GLOBALS['controllink'], 0, false);
$updated = true;
}
}
return $updated;
}