Write haof XML files: Gustavo Narea
(
gustavo@php.net)
Fecha: mié 02 nov 2005 - 03:39:49 CET
Hola, Marcelo.
Marcelo Sosa wrote:
> Hola a todos..
> Mi problema tiene que ver con una
clase, pero ya estoy dudando si es de
> la clase misma.
>
> Les paso el codigo:
> Aqui instancio la clase e invoco
sus metodos:
>
-------------------------------------------
> 01: $res = new DBs();
> 02: $res->conectar();
> 03: $r =
$res->consultar($SQL);
> 04: $res->close();
> 05: if(!$r){
> 06: echo "Hubo un
problema...";
> 07: die;
> 08: }
> 09: echo "\$r=".$r;die;
> 10: exit();
>
-------------------------------------------
> En la linea 03, el metodo
consultar me devuelve TRUE o FALSE, en la 05
> pregunto y despues imprimo su
valor.
>
> Hasta aqui todo bien, ahora, si
comento la linea 09 (donde imprimo el
> valor de $r), la condicion
if(!$r){ se convierte en TRUE....o sea ahora
> imprime "Hubo un problema..."
Si en la línea 05 la condición es falsa, es
falsa. $r puede cambiar su
valor cuantas veces quiera durante la ejecución de las
demás
instrucciones, pero si en la quinta línea fue (!$r ===
true), no hay
nada que puedas hacer luego (en este caso, hasta donde yo
veo).
Por lo tanto, el hecho de que comentes la línea nueve,
no afecta que la
condición de la línea cinco se evalúe de
manera distinta.
Por cierto, qué te parece esto:
<?php
$exito = false; // Esta variable nos será útil
al final, ya verás :)
if( $res = new DBs() ){
if( $res->conectar() ){
if($r =
$res->consultar($SQL))
$exito
= true;
$res->close();
}
}
if($exito){
echo "\$r=$r";
}else{
echo "Hubo un problema...";
}
exit();
?>
Si tienes dudas sobre el script, no dudes en preguntar ;-).
Y si quieres resumir el código anterior...
<?php
if( $res = new DBs() )
if( $res->conectar() ){
$r =
$res->consultar($SQL);
$res->close();
}
// Usando el operador ternario...
echo ($r !== false) ? "\$r=$r" : "Hubo un problema...";
exit();
?>
Y si quieres saber cuál es el problema en tu
script...
<?php
if( $res = new DBs() ){
if( $res->conectar() ){
if($r =
$res->consultar($SQL)){
$res->close();
}else{
$error
= "Error con la consulta SQL";
}
}else{
$error
= "Error al conectar a la BBDD";
}
}else{
$error = "Error al crear la
instancia";
}
// Usando el operador ternario otra vez...
echo ( !isset($error) ) ? "\$r=$r" : $error;
exit();
?>
Recuerda: no dudes en preguntar ante cualquier duda.
Saludos!
PD: No he probado los scripts que te mando, por lo que
seguramente deben
tener error en sintaxis.
-- Best regards, Gustavo Narea. PHP Documentation - Spanish Translation Team. Valencia, Venezuela. -- PHP Spanish Localization Talk Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Este archivo fue generado por hypermail 2.1.7 : sáb 18 mar 2006 - 18:23:40 CET