Factor out error message formatting

This commit is contained in:
Michal Čihař 2011-10-24 17:42:07 +02:00
parent 017ca0c22d
commit 6d1bd82939
4 changed files with 41 additions and 48 deletions

View File

@ -1652,6 +1652,44 @@ function PMA_DBI_get_triggers($db, $table = '', $delimiter = '//')
return($result);
}
/**
* Formats database error message in a friendly way.
* This is needed because some errors messages cannot
* be obtained by mysql_error().
*
* @param int $error_number Error code
* @param string $error_message Error message as returned by server
*
* @return string HML text with error details
*/
function PMA_DBI_formatError($error_number, $error_message)
{
if (! empty($error_message)) {
$error_message = PMA_DBI_convert_message($error_message);
}
$error_message = htmlspecialchars($error_message);
$error = '#' . ((string) $error_number);
if ($error_number == 2002) {
$error .= ' - ' . __('The server is not responding') . ' ' . __('(or the local MySQL server\'s socket is not correctly configured)');
} elseif ($error_number == 2003) {
$error .= ' - ' . __('The server is not responding');
} elseif ($error_number == 1005) {
/* InnoDB contraints, see
* http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
*/
$error .= ' - ' . $error_message .
' (<a href="server_engines.php' . PMA_generate_common_url(array('engine' => 'InnoDB', 'page' => 'Status')).
'">' . __('Details...') . '</a>)';
} else {
$error .= ' - ' . $error_message;
}
return $error;
}
/**
* Checks whether given schema is a system schema: information_schema (MySQL and Drizzle)
* or data_dictionary (Drizzle)

View File

@ -334,18 +334,7 @@ function PMA_DBI_getError($link = null)
// keep the error number for further check after the call to PMA_DBI_getError()
$GLOBALS['errno'] = $error_number;
if (! empty($error_message)) {
$error_message = PMA_DBI_convert_message($error_message);
}
$error_message = htmlspecialchars($error_message);
if ($error_number == 2002) {
$error = '#' . ((string) $error_number) . ' - ' . __('The server is not responding') . ' ' . __('(or the local Drizzle server\'s socket is not correctly configured)');
} else {
$error = '#' . ((string) $error_number) . ' - ' . $error_message;
}
return $error;
return PMA_DBI_formatError($error_number, $error_message);
}
/**

View File

@ -340,28 +340,7 @@ function PMA_DBI_getError($link = null)
// keep the error number for further check after the call to PMA_DBI_getError()
$GLOBALS['errno'] = $error_number;
if (! empty($error_message)) {
$error_message = PMA_DBI_convert_message($error_message);
}
$error_message = htmlspecialchars($error_message);
// Some errors messages cannot be obtained by mysql_error()
if ($error_number == 2002) {
$error = '#' . ((string) $error_number) . ' - ' . __('The server is not responding') . ' ' . __('(or the local MySQL server\'s socket is not correctly configured)');
} elseif ($error_number == 2003) {
$error = '#' . ((string) $error_number) . ' - ' . __('The server is not responding');
} elseif ($error_number == 1005) {
/* InnoDB contraints, see
* http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
*/
$error = '#' . ((string) $error_number) . ' - ' . $error_message .
' (<a href="server_engines.php' . PMA_generate_common_url(array('engine' => 'InnoDB', 'page' => 'Status')).
'">' . __('Details...') . '</a>)';
} else {
$error = '#' . ((string) $error_number) . ' - ' . $error_message;
}
return $error;
return PMA_DBI_formatError($error_number, $error_message);
}
/**

View File

@ -420,20 +420,7 @@ function PMA_DBI_getError($link = null)
// keep the error number for further check after the call to PMA_DBI_getError()
$GLOBALS['errno'] = $error_number;
if (! empty($error_message)) {
$error_message = PMA_DBI_convert_message($error_message);
}
$error_message = htmlspecialchars($error_message);
if ($error_number == 2002) {
$error = '#' . ((string) $error_number) . ' - '
. __('The server is not responding') . ' '
. __('(or the local MySQL server\'s socket is not correctly configured)');
} else {
$error = '#' . ((string) $error_number) . ' - ' . $error_message;
}
return $error;
return PMA_DBI_formatError($error_number, $error_message);
}
/**