/** * 数据库错误 * @param string $message 错误代码 * @param string $sql 查询语句 * @return void */ function dbError($message, $sql) { global $_FANWE; list($show_trace, $log_trace) = FanweError::debugBacktrace(); $title = lang('error', 'db' . $message); $title_msg = lang('error', 'db_error_message'); $title_sql = lang('error', 'db_query_sql'); $title_backtrace = lang('error', 'backtrace'); $title_help = lang('error', 'db_help_link'); $db =& FDB::object(); $db_errno = $db->errno(); $db_error = str_replace($db->tablepre, '', $db->error()); $sql = htmlspecialchars(str_replace($db->tablepre, '', $sql)); $msg = '<li>[Type] ' . $title . '</li>'; $msg .= $db_errno ? '<li>[' . $db_errno . '] ' . $db_error . '</li>' : ''; $msg .= $sql ? '<li>[Query] ' . $sql . '</li>' : ''; FanweError::showError('db', $msg, $show_trace, false); unset($msg, $show_trace); $error_msg = '<b>' . $title . '</b>'; $error_msg .= "[{$db_errno}]<br /><b>ERR:</b> {$db_error}<br />"; if ($sql) { $error_msg .= '<b>SQL:</b> ' . $sql; } $error_msg .= "<br />"; $error_msg .= '<b>PHP:</b> ' . $log_trace; FanweError::writeErrorLog($error_msg); exit; }