关于页面容错的问题

lzkd 2004-07-28 10:17:13
关于页面容错的问题

  在下写了一个php+mysql+apache的一个小东西,已经接近尾声了,在此其间得到了
CSDN各位高手的帮助,在些表示感谢。
  现在在下有一个问题想再请大家帮助,先谢过各位了。

  在一般情况下,php里面只要加上@符号就可以进行简单的容错,将出错信息屏蔽掉。
但现在我不想这么做,理由如下:
  1、每句mysql语句里面都加@太麻烦了。
  2、如果加上@后,以后再想调试还要把@去掉,有劳命伤财的感觉。
  3、简单的屏蔽信息起到的作用不够,在下希望能够在用户出错、数据库反应太慢、
用户输入非法字符的时候将用户连接到一个出错页面(当然,所有出错都使用一个页面
不需要将出错种类分开)。

  请教各位大侠,这种想法应该如何实现?即,在mysql报错的时候,就连接到一个
出错页面。

  再次谢过各位!!

ps:已经搜索过,找不到答案:(
...全文
213 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzkd 2004-07-28
  • 打赏
  • 举报
回复
在研究xuzuning(唠叨)给的资料中......

E文不好,实在是太痛苦了:(

挥汗如雨ing.....

poor lzkd
xuzuning 2004-07-28
  • 打赏
  • 举报
回复
这是手册上的自定义错误处理程序,你可以仔细看一下
<?php

// redefine the user error constants - PHP 4 only
//重新定义错误常数
define("FATAL", E_USER_ERROR);
define("ERROR", E_USER_WARNING);
define("WARNING", E_USER_NOTICE);

// set the error reporting level for this script
//设置错误报告水平
error_reporting(FATAL | ERROR | WARNING);

// error handler function
//错误处理函数
function myErrorHandler($errno, $errstr, $errfile, $errline) {
switch ($errno) {
case FATAL:
echo "<b>致命的</b> [$errno] $errstr<br />\n";
echo " 致命的错误,发生在文件 $errfile 的第 $errline 行";
echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
echo "异常中断...<br />\n";
exit(1);
break;
case ERROR:
echo "<b>一般错误</b> [$errno] $errstr<br />\n";
break;
case WARNING:
echo "<b>警告</b> [$errno] $errstr<br />\n";
break;
default:
echo "错误类型: [$errno] $errstr<br />\n";
break;
}
}

// function to test the error handling
function scale_by_log($vect, $scale) {
if (!is_numeric($scale) || $scale <= 0) {
trigger_error("log(x) for x <= 0 is undefined, you used: scale = $scale",
FATAL);
}

if (!is_array($vect)) {
trigger_error("Incorrect input vector, array of values expected", ERROR);
return null;
}

for ($i=0; $i<count($vect); $i++) {
if (!is_numeric($vect[$i]))
trigger_error("Value at position $i is not a number, using 0 (zero)",
WARNING);
$temp[$i] = log($scale) * $vect[$i];
}
return $temp;
}

// set to the user defined error handler
//起用用户定义的错误处理函数
$old_error_handler = set_error_handler("myErrorHandler");


// trigger some errors
// 引发一些错误用于测试
//, first define a mixed array with a non-numeric item
echo "vector a\n";
$a = array(2,3, "foo", 5.5, 43.3, 21.11);
print_r($a);

// now generate second array, generating a warning
echo "----\nvector b - a warning (b = log(PI) * a)\n";
$b = scale_by_log($a, M_PI);
print_r($b);

// this is trouble, we pass a string instead of an array
echo "----\nvector c - an error\n";
$c = scale_by_log("not array", 2.3);
var_dump($c);

// this is a critical error, log of zero or negative number is undefined
echo "----\nvector d - fatal error\n";
$d = scale_by_log($a, -2.5);

?>
feixuehenshui 2004-07-28
  • 打赏
  • 举报
回复
在程序最开头加上:error_reporting(0);
zysoft17 2004-07-28
  • 打赏
  • 举报
回复
写一个函数,把所有的SQL语句送到这个函数里运行,这个语句上加上@,调试时把@去了,完了再加上.
lzkd 2004-07-28
  • 打赏
  • 举报
回复
t一下,再次感谢各位
lzkd 2004-07-28
  • 打赏
  • 举报
回复
好象可以达到我的要求了,但还是有点不求甚解的意思,惭愧,惭愧.
要写结论吗?
下班前过来看,如果没人要,我就结帖了.

脸红ing
lxiao76 2004-07-28
  • 打赏
  • 举报
回复
学习
lzkd 2004-07-28
  • 打赏
  • 举报
回复
ft

再次测试的时候有了问题....晕..大汗..
lzkd 2004-07-28
  • 打赏
  • 举报
回复
终于弄懂了....嘻...

向大家表示感谢.并再次感谢xuzuning(唠叨)老大.

晚上17:00结帐,有人需要我把结论写一下吗?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧