Hola a todos.
Estoy tratando de capturar los errores que genera la base de datos
(postgres) y recogerlos mediante un alert() de javascript.
El comportamiento es un tanto extraño y por eso lo pongo aquÃÂ.
Primero tengo diseñada una clase de genera el alert() y muestra el
mensaje de error:
<?php
class error{
function error($valor){ ?>
<script language="JavaScript" type="text/javascript">
alert('<?php echo $valor; ?>');
</script>
<?php
}
}
?>
Luego en otro script, llamo a la clase error y recogo el error en caso
de producirse.
<?php
require('error.php');
$delete= "delete from .............!;
$q= pg_query($delete) or die(new error("¡¡¡ERROR!!!!"));
?>
Esto funciona perfectamente. Al fallar el delete, muestra un alert con
el texto ¡¡¡ERROR!!!.
Pero en el caso que subtituya el texto por la función pg_last_error():
$delete= "delete from ".$datos["tabla"]." where id =".$datos["valor"];
$q= pg_query($delete) or die(new error(pg_last_error()));
No funciona. Sin embargo si miro el código se ve que el texto del error
se ha metido dentro del alert():
<script language="JavaScript" type="text/javascript">
alert('ERROR: update o delete en una tabla "clientes" viola la
restriccion de clave foranea "clientesofertas_cliente_fkey" en la tabla
"clientesofertas"
DETAIL: La llave (id)=(1) todavÃÂa es referida desde la tabla
«clientesofertas».');
</script>
¿porque no lo ejecuta?. No entiendo que está pasando.
He pensado que podrÃÂa ser problema de las comillas dobles, pero
aplicando un addslashes() al texto, no lo soluciona.
Es decir:
<?php
class error{
function error($valor){ ?>
<script language="JavaScript" type="text/javascript">
alert('<?php echo addslashes($valor); ?>');
</script>
<?php
}
}
?>
Y el código generado:
<script language="JavaScript" type="text/javascript">
alert('ERROR: update o delete en una tabla \"clientes\" viola la
restriccion de clave foranea \"clientesofertas_cliente_fkey\" en la
tabla \"clientesofertas\"
DETAIL: La llave (id)=(1) todavÃÂÂa es referida desde la tabla
«clientesofertas».');
</script>
¿Alguien sabrÃÂa decirme que pasa?.
- --
< ¡¡Nos vemos!! >
----------------------------
\
\
.::!!!!!!!:.
.!!!!!:. .:!!!!!!!!!!!!
~~~~!!!!!!. .:!!!!!!!!!UWWW$$$
:$$NWX!!: .:!!!!!!XUWW$$$$$$$$$P
$$$$$##WX!: .<!!!!UW$$$$" $$$$$$$$#
$$$$$ $$$UX :!!UW$$$$$$$$$ 4$$$$$*
^$$$B $$$$\ $$$$$$$$$$$$ d$$R"
"*$bd$$$$ '*$$$$$$$$$$$o+#"
"""" """""""