diff options
author | Deven Bansod <devenbansod.bits@gmail.com> | 2015-06-29 11:03:42 +0300 |
---|---|---|
committer | Deven Bansod <devenbansod.bits@gmail.com> | 2015-06-29 11:03:42 +0300 |
commit | 2e6abf3cb25d649aee3af3ea08ab1b9c8f844114 (patch) | |
tree | 52baf1abf0026c19e85f1f5eb7e1f08b948c088d /db_designer.php | |
parent | e46c645837aac374e256bd21acdd4c3c13189b18 (diff) |
Modified structure for pma__designer_settings table
Signed-off-by: Deven Bansod <devenbansod.bits@gmail.com>
Diffstat (limited to 'db_designer.php')
-rw-r--r-- | db_designer.php | 40 |
1 files changed, 34 insertions, 6 deletions
diff --git a/db_designer.php b/db_designer.php index f776cad9f4..79eb6b3732 100644 --- a/db_designer.php +++ b/db_designer.php @@ -93,13 +93,41 @@ if (isset($_REQUEST['operation'])) { && ! empty($cfgDesigner['table']) && $GLOBALS['cfgRelation']['designer_settingswork'] ) { - $query = 'INSERT INTO ' . PMA_Util::backquote($cfgDesigner['db']) - . '.' . PMA_Util::backquote($cfgDesigner['table']) - . ' VALUES("' . $cfgDesigner['user'] . '", "' - . $_REQUEST['index'] . '", "' . $_REQUEST['value'] . '") ON DUPLICATE KEY ' - . 'UPDATE `stored_value` = "' . $_REQUEST['value'] . '";'; + $orig_data_query = 'SELECT ' . PMA_Util::backquote('settings_data') + . ' FROM `' . $cfgDesigner['db'] . '`.`' . $cfgDesigner['table'] . '` WHERE ' + . PMA_Util::backquote('username') . ' = "' + . $cfgDesigner['user'] . '"'; + + $orig_data = $GLOBALS['dbi']->fetchSingleRow($orig_data_query); + + $success = false; + + if (isset($orig_data) + && ! empty($orig_data) + && $orig_data + ) { + $orig_data = json_decode($orig_data['settings_data'], true); + $orig_data[$_REQUEST['index']] = $_REQUEST['value']; + $orig_data = json_encode($orig_data); + + $save_query = 'UPDATE `' . $cfgDesigner['db'] . '`.`' + . $cfgDesigner['table'] . '` SET ' + . PMA_Util::backquote('settings_data') . ' = \'' + . $orig_data . '\' WHERE ' . PMA_Util::backquote('username') . ' = "' + . $cfgDesigner['user'] . '";'; + + $success = $GLOBALS['dbi']->query($save_query); + } else { + $save_data = array($_REQUEST['index'] => $_REQUEST['value']); + + $query = 'INSERT INTO ' . PMA_Util::backquote($cfgDesigner['db']) + . '.' . PMA_Util::backquote($cfgDesigner['table']) + . ' VALUES("' . PMA_Util::sqlAddSlashes($cfgDesigner['user']) . '", \'' + . PMA_Util::sqlAddSlashes(json_encode($save_data)) . '\');'; + + $success = $GLOBALS['dbi']->query($query); + } - $success = $GLOBALS['dbi']->query($query); $response->isSuccess($success); } } |