MyException.class.php:<?php
/**
* 自定义异常处理类
* @author Zhang Quan
*/
class MyException {
/**
* 显示异常信息
* @param integer $errNo 错误代码
* @param string $errMsg 错误信息
* @param string $errFile 错误文件
* @param integer $errLine 错误行
* @return none
*/
static function customErr($errNo, $errMsg, $errFile, $errLine) {
die('<font color="red"><b>错误信息:</b> ['.$errNo.'] '.$errMsg.'<br />'.
'文件名:'.$errFile.' 行: '.$errLine.'</font>');
}
/**
* 开启调试模式才显示错误信息
* @param integer $errNo 错误代码
* @param string $errMsg 错误信息
* @param string $errFile 错误文件
* @param integer $errLine 错误行
* @return none
*/
static function showErr($param, $errMsg) {
$str = '';
if (DEBUG_MODE == 1) {
$str = eval("\$param or trigger_error(\$errMsg);");
}
else if (DEBUG_MODE == 0) {
$str = eval("@\$param;");
}
return $str;
}
}
?>$dbSelected = MyException::showErr('mysql_select_db(DB_NAME)', '无法连接数据库');
而我把我自定义的数据库配置文件中的host改为其他的(与原来的localhost不一致,正确应为localhost)运行时为什么会没有报错?不是应该出错吗?
String调试数据库函数MySQL
/**
* 自定义异常处理类
* @author Zhang Quan
*/
class MyException {
/**
* 显示异常信息
* @param integer $errNo 错误代码
* @param string $errMsg 错误信息
* @param string $errFile 错误文件
* @param integer $errLine 错误行
* @return none
*/
static function customErr($errNo, $errMsg, $errFile, $errLine) {
die('<font color="red"><b>错误信息:</b> ['.$errNo.'] '.$errMsg.'<br />'.
'文件名:'.$errFile.' 行: '.$errLine.'</font>');
}
/**
* 开启调试模式才显示错误信息
* @param integer $errNo 错误代码
* @param string $errMsg 错误信息
* @param string $errFile 错误文件
* @param integer $errLine 错误行
* @return none
*/
static function showErr($param, $errMsg) {
$str = '';
if (DEBUG_MODE == 1) {
$str = eval("\$param or trigger_error(\$errMsg);");
}
else if (DEBUG_MODE == 0) {
$str = eval("@\$param;");
}
return $str;
}
}
?>$dbSelected = MyException::showErr('mysql_select_db(DB_NAME)', '无法连接数据库');
而我把我自定义的数据库配置文件中的host改为其他的(与原来的localhost不一致,正确应为localhost)运行时为什么会没有报错?不是应该出错吗?
String调试数据库函数MySQL
解决方案 »
- __FILE__ == ''在什么情况下成立
- 高手帮忙 如何很据数据库的值 填充复选框
- 链接问题
- 如何在php中运行 “tracert”
- 求助: 这两个变态的js写法怎么理解?哪种写法更好更有效?各有啥优缺点?
- 关于httpd.conf伪静态的一条正则写法。
- 如何退出框架页?
- 系统函数imagecreate(int x_size,int y_size)为什么会错误?是不是需要重新定义?
- 各位php的高手帮帮忙,我在写论坛时有到了困难,请帮帮忙
- 我有一些.class文件,在php中能否调用?怎么用?
- 如何利用php把缓存页面下来
- 求救:mysql_fetch_row(): supplied argument is not a valid MySQL result resource
但要使指令执行并有返回值,至少应写作
$str = eval("return $param or trigger_error(\$errMsg);");
<?phpclass MyException {
static function customErr($errNo, $errMsg, $errFile, $errLine) {
die('<font color="red"><b>错误信息:</b> [' . $errNo . '] ' . $errMsg . '<br />' .
'文件名:' . $errFile . ' 行: ' . $errLine . '</font>');
}
static function showErr($param, $errMsg) {
if (DEBUG_MODE == 1) {
$str=eval('$param;') or trigger_error($errMsg);
} else if (DEBUG_MODE == 0) {
$str = eval('$param;');
}
return $str;
}}define('DEBUG_MODE',1);
$dbSelected = MyException::showErr('mysql_select_db(DB_NAME)', '无法连接数据库');
?>
再完善一下:
<?phpclass MyException { static function customErr($errNo, $errMsg, $errFile, $errLine) {
die('<font color="red"><b>错误信息:</b> [' . $errNo . '] ' . $errMsg . '<br />' .
'文件名:' . $errFile . ' 行: ' . $errLine . '</font>');
} static function showErr($param, $errMsg) {
if (DEBUG_MODE == 1) {
set_error_handler("self::customErr");
$str = eval('$param;') or trigger_error($errMsg);
} else if (DEBUG_MODE == 0) {
$str = eval('$param;');
}
return $str;
}}define('DEBUG_MODE', 1);
MyException::showErr('mysql_select_db(DB_NAME)', '无法连接数据库啊~~');
?>
die('<font color="red"><b>错误信息:</b> [' . $errNo . '] ' . $errMsg . '<br />' .
'文件名:' . $errFile . ' 行: ' . $errLine . '<br /></font>');
} static function showErr($param, $errMsg) {
if (DEBUG_MODE == 1) {
set_error_handler("self::customErr");
$str = eval("$param or trigger_error(\$errMsg);"); //另外,你需要考虑1楼的说法,eval默认返回NULL;如果在执行的代码中有一个解析错误, eval() 返回 FALSE;如果想让eval返回某个函数的返回值,就必须加上return
} else if (DEBUG_MODE == 0) {
$str = eval("$param;");
}
return $str;
}}define('DEBUG_MODE', 1);
define('DB_NAME', 'abcd');
$conn = @mysql_connect('localhost', 'root', 'cigp1086');
$dbSelected = MyException::showErr("mysql_select_db(DB_NAME)", '无法连接数据库啊~~');
//var_dump($dbSelected);?>