Pregunta

cuando se da un error Quiero que hacer 2 cosas.

  1. echo nl2br ($ qVraagOp);
  2. mysql_error ();

así que thougth:

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

Me puede escribir una función que hace estas dos cosas y luego llamar a eso, sino que un poco redundante. ¿hay una otra manera?

Matthy

¿Fue útil?

Solución

Me gustaría escribir una función como:

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

Y lo usaría como

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

Es su trabajo para salvar el estado de depuración en un DB (piensan que es el modo de mantenimiento activo o no) y el registro en un archivo sería útil también. También quiero señalar que yo no lo probé.

Otros consejos

acaba de morir con un mensaje de error técnico no es realmente útil, al menos para sus usuarios finales; y usted debe diseñar su sitio tenerlos en cuenta.

Una solución que es probablemente más útil para cualquier persona sería:

  • Iniciar el mensaje de error técnico en un archivo, que a veces nos visites
  • Mostrar un buen " uy, ha producido un error " página para el usuario final.


Sin embargo, si usted realmente necesita esto, se podía:

  • Concatenate ambas informaciones, que tienen una sola cadena
  • utilizar un bloque else if /; que podría hacer que el código sea más fácil de leer.


Una buena solución podría ser el uso de excepciones (semi-pseudo-código)
Por supuesto, esto está considerando que haya definido el MySQLException alguna parte.

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
}

Una cosa agradable con excepción es que todo el código que se ocupa de los errores es en un solo lugar: no hay die todas partes en el medio de su código

Así que usted quiere mostrar tanto nl2br($qVraagOp) y mysql_error()? Eso sería

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

(utilizando la constante de PHP_EOL para colocar una nueva línea entre nl2br($qVraagOp) y la mysql_error())

Estoy shouldnt tratar esto en PHP, pero debería funcionar. Lo sentimos, si no:)

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

Se puede escribir

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

die () recibe una cadena (o un int) como argumento.

Asegúrese de que su mensaje está muriendo sólo se almacena en el registro y no lo hace de salida para el usuario final, ya que por lo general es inútil y hasta peligroso (revela información sobre su configuración a los potenciales atacantes.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top