getTriggers($db, $table);
echo PMA_RTE_getList('trigger', $items);
/**
* Display a link for adding a new trigger,
* if the user has the necessary privileges
*/
echo PMA_TRI_getFooterLinks();
} // end PMA_TRI_main()
/**
* Handles editor requests for adding or editing an item
*
* @return void
*/
function PMA_TRI_handleEditor()
{
global $_REQUEST, $_POST, $errors, $db, $table;
if (! empty($_REQUEST['editor_process_add'])
|| ! empty($_REQUEST['editor_process_edit'])
) {
$sql_query = '';
$item_query = PMA_TRI_getQueryFromRequest();
if (! count($errors)) { // set by PMA_RTN_getQueryFromRequest()
// Execute the created query
if (! empty($_REQUEST['editor_process_edit'])) {
// Backup the old trigger, in case something goes wrong
$trigger = PMA_TRI_getDataFromName($_REQUEST['item_original_name']);
$create_item = $trigger['create'];
$drop_item = $trigger['drop'] . ';';
$result = $GLOBALS['dbi']->tryQuery($drop_item);
if (! $result) {
$errors[] = sprintf(
__('The following query has failed: "%s"'),
htmlspecialchars($drop_item)
)
. '
'
. __('MySQL said: ') . $GLOBALS['dbi']->getError(null);
} else {
$result = $GLOBALS['dbi']->tryQuery($item_query);
if (! $result) {
$errors[] = sprintf(
__('The following query has failed: "%s"'),
htmlspecialchars($item_query)
)
. '
'
. __('MySQL said: ') . $GLOBALS['dbi']->getError(null);
// We dropped the old item, but were unable to create the
// new one. Try to restore the backup query.
$result = $GLOBALS['dbi']->tryQuery($create_item);
if (! $result) {
// OMG, this is really bad! We dropped the query,
// failed to create a new one
// and now even the backup query does not execute!
// This should not happen, but we better handle
// this just in case.
$errors[] = __(
'Sorry, we failed to restore the dropped trigger.'
)
. '
'
. __('The backed up query was:')
. "\"" . htmlspecialchars($create_item) . "\""
. '
'
. __('MySQL said: ') . $GLOBALS['dbi']->getError(null);
}
} else {
$message = PMA_Message::success(
__('Trigger %1$s has been modified.')
);
$message->addParam(
PMA_Util::backquote($_REQUEST['item_name'])
);
$sql_query = $drop_item . $item_query;
}
}
} else {
// 'Add a new item' mode
$result = $GLOBALS['dbi']->tryQuery($item_query);
if (! $result) {
$errors[] = sprintf(
__('The following query has failed: "%s"'),
htmlspecialchars($item_query)
)
. '
'
. __('MySQL said: ') . $GLOBALS['dbi']->getError(null);
} else {
$message = PMA_Message::success(
__('Trigger %1$s has been created.')
);
$message->addParam(
PMA_Util::backquote($_REQUEST['item_name'])
);
$sql_query = $item_query;
}
}
}
if (count($errors)) {
$message = PMA_Message::error(__('One or more errors have occurred while processing your request:'));
$message->addString('