Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/03/2004, 07:58
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues ..

No sé si usarás ya estructuras tipo:

$result=mysql_query($sql) or die(mysql_error());

Pero, .. puedes usar la misma estructura condicional (una ejecución fallida de mysql_query() por ejemplo arroja un "false") para llamar a tu función que haga el log adecuado y sin el "die()" por si quieres continuar la ejecución de la aplicación y dar algún mensaje de error personalizado.)

Pero, llegado a este punto tal vez te combien ir viendo ya alguna capa de abstracción de Base de datos. Estas "capas" suelen ser objetos (classes OOP) y principalmente lo que hacen es "pasar" todas tus llamadas a tus funciones "nativas" de tu BD (en tu caso a las mysql_xxx()) por unos métodos ("funciones") así todo acceso a tu BD (por las funciones de PHP para tu BD en concreto) las "centraliza" .. con eso es más cómodo por ejemplo gestionar los errores dandoles un formato único e incluso hacer tu log de errores o lo que requieras.

Se usan tipo:

$db->conectaBD(datos conexión);
$db->consulta($sql);
$db->otrosmetosos ....

En ese ejemplo (hipotetico) .. lo que harías directamente por mysql_query($sql) .. ahora lo harías por $db->consulta($sql) así que ahí en ese método (función) puedes implementar la lógica de creación de tu log si hay un error (previa detección).

Classes (capas de abstracción de BD) tienes muchas ya implementadas. La mayoría (que se precie) ya gestiona los errores y tal vez hasta hagan "log" (y si no los hace no sería dificil implementar un nuevo método para tal fin). Ademas de esto, no sólo se usan para "sustituir" funciones o "centarlizar" sino que te permiten usar indistintamente o Mysql como BD u otras Base de datos (PostgreSQL, MS SQL server ..etc) siempre y cuando tu SQL empleado sea compatible con estas podrás hacer funciona tu aplicación en tantas BD como soporte tu capa de abstracción de BD o como mucho tendras que cambiar ligeramente alguna sentencia SQL .. pero poco o nada de código PHP si migras tu aplicación hacia otro Motor de BD o bien quieres que tu aplicación funcione con varios motores de BD.

En sitios como www.phpclasses.org puedes encontrar estas capas de abstracción de BD ...

Una de las más famosas y completa es: ADOdb , pero hay muchas más simples que .. para ir tomando contacto con el tema te servirán.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.