setName(v($_REQUEST["name"]));
$editor->loadTable(true, true, false);
if ($action == "alter")
{
$result = alterTableIndexes($db, v($_REQUEST["query"]), $editor);
$formatted_query = preg_replace("/[\\n|\\r]?[\\n]+/", "
", htmlspecialchars($editor->getSql()));
if ($result)
print
'
1
'
.'
The command executed successfully.
'
.'
'.$formatted_query.'
'
.'
';
else
print
'0
'
.'
Error occured while executing the query:
'
.'
'.$formatted_query.'
'
.'
'.htmlspecialchars($db->getError()).'
'
.'
';
}
else
displayIndexesForm($db, $editor);
}
function displayIndexesForm(&$db, &$editor)
{
$indexes = $editor->getIndexes();
$fields = $editor->getFields();
$replace = array(
'ID' => v($_REQUEST["id"]) ? htmlspecialchars($_REQUEST["id"]) : '',
'MESSAGE' => __('Changes are not saved until you press [Save All Changes]'),
'INDEXES' => count($indexes) > 0 ? json_encode($indexes) : '{}',
'FIELDS' => json_encode($fields),
'TABLE_NAME' => htmlspecialchars($editor->getName())
);
echo view('indexes', $replace);
}
function alterTableIndexes(&$db, $info, &$editor)
{
$info = json_decode($info);
if (!is_object($info))
return false;
if (v($info->indexes))
$editor->setIndexes($info->indexes);
$sql = $editor->getAlterIndexStatement();
if (!$db->query($sql))
return false;
return true;
}
?>