= 50002 ) { $url_query .= '&goto=db_structure.php'; $routines = PMA_DBI_fetch_result('SELECT SPECIFIC_NAME,ROUTINE_NAME,ROUTINE_TYPE,DTD_IDENTIFIER FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA= \'' . PMA_sqlAddslashes($db,true) . '\';'); if ($routines) { echo ''; echo sprintf('', $strName, $strType, $strRoutineReturnType); $ct=0; $delimiter = '//'; foreach ($routines as $routine) { $drop_and_create = '\'DROP ' . $routine['ROUTINE_TYPE'] . ' ' . PMA_backquote($routine['SPECIFIC_NAME']) . $delimiter . "\n" . 'CREATE ' . $routine['ROUTINE_TYPE'] . ' ' . PMA_backquote($routine['SPECIFIC_NAME']) . '()' . "\n" . '\''; $sql = sprintf('SELECT CONCAT(' . $drop_and_create . ',ROUTINE_DEFINITION,\'\n//\') AS DEFINITION FROM information_schema.ROUTINES WHERE SPECIFIC_NAME=\'%s\'', $routine['SPECIFIC_NAME']); $definition = PMA_DBI_fetch_value($sql); if ($routine['ROUTINE_TYPE'] == 'PROCEDURE') { $sqlUseProc = 'CALL ' . $routine['SPECIFIC_NAME'] . '()'; } else { $sqlUseProc = 'SELECT ' . $routine['SPECIFIC_NAME'] . '()'; /* this won't get us far: to really use the function i'd need to know how many parameters the function needs and then create something to ask for them. As i don't see this directly in the table i am afraid that requires parsing the ROUTINE_DEFINITION and i don't really need that now so i simply don't offer a method for running the function*/ } if ($routine['ROUTINE_TYPE'] == 'PROCEDURE') { $sqlDropProc = 'DROP PROCEDURE ' . $routine['SPECIFIC_NAME']; } else { $sqlDropProc = 'DROP FUNCTION ' . $routine['SPECIFIC_NAME']; } echo sprintf('', ($ct%2 == 0) ? 'even' : 'odd', $routine['ROUTINE_NAME'], ! empty($definition) ? '' . $titles['Structure'] . '' : ' ', $routine['ROUTINE_TYPE'] == 'PROCEDURE' ? '' . $titles['Browse'] . '' : ' ', '' . $titles['Drop'] . '', $routine['ROUTINE_TYPE'], $routine['DTD_IDENTIFIER']); $ct++; } echo '
%s       %s %s
%s %s %s %s %s %s
'; } } ?>