代码之家  ›  专栏  ›  技术社区  ›  matthy

php:die/exit中的多个命令

  •  0
  • matthy  · 技术社区  · 16 年前

    当它出错时,我要他做两件事。

    1. echo nl2br($qvraagop);
    2. mysql_错误();

    所以我认为:

    $rVraagOp = mysql_query( $qVraagOp ) or die( echo nl2br($qVraagOp); mysql_error(); );
    

    我可以写一个函数来做这两件事,然后调用它,但这有点多余。 还有别的办法吗?

    马蒂

    5 回复  |  直到 13 年前
        1
  •  1
  •   Simon Hayter Simon Perepelitsa    13 年前

    我会写一个函数,比如:

    function PrintDebug($DebugData)
    { 
      if($DebugMode == 1)
      { 
          return nl2br($DebugData) . "<br />" . mysql_error();
      }
      else
      {
          return "Ops stuff got messed up!!!";
      }
    } 
    

    我会像这样使用它

    $rVraagOp = mysql_query( $qVraagOp ) or die(PrintDebug($qVraagOp));
    

    在数据库中保存调试状态(不管维护模式是否处于活动状态)是您的工作,并且记录到一个文件也会很有帮助。我还想指出,我没有测试过它。

        2
  •  5
  •   Pascal MARTIN    16 年前

    仅仅因为一条技术错误信息而死亡并不是真正有用的,至少对你的最终用户来说是这样;你应该在设计网站时考虑到它们。

    一个对任何人都更有用的解决方案是:

    • 将技术错误消息记录到一个文件中,您有时会检查该文件
    • 表现得很好” 哎呀,发生了一个错误 “向最终用户翻页。


    不过,如果你真的需要这个,你可以:

    • 将两个信息连接起来,以便只有一个字符串
    • 使用if/else块;这可能使代码更易于阅读。


    一个好的解决方案可能是使用异常 (半伪码) :
    当然,这是考虑到你已经定义了 MySQLException 某处。

    try {
        // Do some stuff
    
        if (!mysql_query(...)) {
            throw new MySQLException(mysql_error());
        }
    
        // Some other stuff
    } catch (MySQLException $e) {
        // Deal with the MySQLException kind of Exception
        // i.e. deal my SQL errors
        // => Log to file
        //    + display a nice error page
    } catch (Exception $e) {
        // At least, if something in the try block
        // might raise an Exception that's not a MySQLException
    }
    

    一个好的例外是,所有处理错误的代码都在一个地方:没有 die 在代码中间的任何地方

        3
  •  0
  •   Douwe Maan    16 年前

    所以你想同时展示 nl2br($qVraagOp) mysql_error() ?那将是

    or die(nl2br($qVraagop) . PHP_EOL . mysql_error())
    

    (使用 PHP_EOL

        4
  •  0
  •   vas3k    16 年前

    $rVraagOp = mysql_query( $qVraagOp ) or echo(nl2br($qVraagOp)) and die(mysql_error());
    
        5
  •  0
  •   Vinko Vrsalovic    16 年前

    $rVraagOp = mysql_query( $qVraagOp ) 
              or die( sprintf("%s%s%s", nl2br($qVraagop), PHP_EOL, mysql_error()) );
    

    推荐文章