elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  inconveniente de funcionamiento de errores con mysql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: inconveniente de funcionamiento de errores con mysql  (Leído 2,549 veces)
gowend

Desconectado Desconectado

Mensajes: 46



Ver Perfil WWW
inconveniente de funcionamiento de errores con mysql
« en: 29 Noviembre 2012, 03:59 am »

Hola a todos, voy al grano, tengo la tarea de realizar un por decir así sistema de errores, en una tabla llamada errores voy a insertar los errores de base de datos que ocurran en cualquier script del proyecto, yo utilizo mvc, pero lo voy a hacer de manera sencilla.

index.php

Código
  1. <?php
  2. require_once 'conexion.php';
  3.  
  4. mysq_select_db('test',$con);
  5.  
  6. $sql = "SELECT id, nombre FROM usuario LIMIT 25; ";
  7.  
  8. $resultado = mysql_query($sql,$con) or die (errorSql($_SERVER['PHP_SELF'],mysql_error()));
  9.  
  10. $reg = mysql_fetch_assoc($resultado);
  11. //resto del codigo
  12.  

conexion.php

Código
  1. <?php
  2. $host = "localhost";
  3. $user = "root";
  4. $pass = "";
  5.  
  6. $con = mysql_connect($host, $user, $pass) or trigger_error(mysql_error(),E_USER_ERROR);
  7.  
  8. function errorSql($file,$error){
  9.  $sql = "INSERT INTO error (file,error) VALUES ('$file','$error');";
  10.  $insert = mysql_query($sql,$con) or die("Problemas en el Insert ".mysql_error());
  11.  if($insert) echo "Ha ocurrido un problema, hemos informado el inconveniente.";
  12. }
  13. ?>
  14.  

El inconveniente consiste en que cuando daño a proposito la consulta del index, se ejecuta bien la función, pero en la linea de conexion.php
Código
  1. $insert = mysql_query($sql,$con) or die("Problemas en el Insert ".mysql_error());
apareciendo en el navegador el informe de error de index. en el srcipt de conexion.php como si perteneciera a ese script, siendo que se paso por parametro a la funcion errorSql. Espero haya sido claro y si no puedo volver a explicarlo, espero me puedan ayudar con mi inconveniente y si no, pues ojala se aprenda un poco de este tema.


En línea

Gowend132 El conocimiento es LIBRE!!!
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: inconveniente de funcionamiento de errores con mysql
« Respuesta #1 en: 29 Noviembre 2012, 04:39 am »

Es lo que tiene el error reporting de mysql. De todos modos, no es nada recomendable mostrar el error real al visitante.. en todo caso guárdalo en un log o algo pero nunca muestres el error real en un script destinado al visitante.

PD: Te sugiero que uses mysqli. mysql se considera "desaconsejado" y es probable que quede marcado como obsoleto/eliminado en futuras versiones de PHP.


Saludos


En línea

gowend

Desconectado Desconectado

Mensajes: 46



Ver Perfil WWW
Re: inconveniente de funcionamiento de errores con mysql
« Respuesta #2 en: 29 Noviembre 2012, 15:21 pm »

En realidad no se deberia mostrar al usuario ni es lo que pretendo, lo que deseo es guardar el string del error en una tabla junto con el nombre del archivo en que se origino, pero no se puede ejecutar ese insert debido a que sale el error de mysql del archivo index.php en el script de conexion.php.
En línea

Gowend132 El conocimiento es LIBRE!!!
2Fac3R


Desconectado Desconectado

Mensajes: 300


Why be a king when you can be a god


Ver Perfil WWW
Re: inconveniente de funcionamiento de errores con mysql
« Respuesta #3 en: 30 Noviembre 2012, 03:10 am »

La verdad es que no encuentro ningún error de sintáxis pero hay algo que me llamó la atención, no sé si es porque no lo he usado antes y no lo conozco o sea un "error" en el código.

A mi no me funciona así:

Código
  1. $con = mysql_connect($host, $user, $pass) or trigger_error(mysql_error(),E_USER_ERROR);
  2.  

Prefiero usar el típico "or die()" y de esa manera si funciona.
PD: No he probado todo el código, otro error posible sería relacionado con la conexión a la bd, aunque no creo.
Zalu2
En línea

Escuela de Hackers & Programación. http://ihackndev.blogspot.com/
gowend

Desconectado Desconectado

Mensajes: 46



Ver Perfil WWW
Re: inconveniente de funcionamiento de errores con mysql
« Respuesta #4 en: 5 Diciembre 2012, 20:54 pm »

En realidad no hay ningun error de sintaxís, lo que quiero es registrar en una tabla los (posibles) errores que ocurran en una ejecución. Y en cuanto al trigger_error, era el unico que no me detenia las siguiente funciones de mysql con el error anterior.
En línea

Gowend132 El conocimiento es LIBRE!!!
Servia


Desconectado Desconectado

Mensajes: 346


Ver Perfil
Re: inconveniente de funcionamiento de errores con mysql
« Respuesta #5 en: 17 Diciembre 2012, 16:18 pm »

En realidad no hay ningun error de sintaxís, lo que quiero es registrar en una tabla los (posibles) errores que ocurran en una ejecución. Y en cuanto al trigger_error, era el unico que no me detenia las siguiente funciones de mysql con el error anterior.

Mediante error_log ya puedes guardarlo todo en un mismo archivo, para nada es recomendable que lo guardes en la db, acabarás ignorando tales errores. Evidentemente mucho peor es hacer el die.
Piensa por un momento que el mySQL está caído ¿Qué crees que pasará? Los procesos de PHP se acabarán bloqueando con la tontería del bucle.
En línea

gowend

Desconectado Desconectado

Mensajes: 46



Ver Perfil WWW
Re: inconveniente de funcionamiento de errores con mysql
« Respuesta #6 en: 9 Enero 2013, 02:40 am »

Tienes toda la razón, contemple en mis posibilidades la opción del error_log, pero pense que tal vez existía la forma de conseguirlo, pero tu punto es mas que claro. Gracias por tu comentario  ;)
En línea

Gowend132 El conocimiento es LIBRE!!!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines