Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/12/2013, 11:14
kasmo
 
Fecha de Ingreso: noviembre-2012
Mensajes: 65
Antigüedad: 11 años, 5 meses
Puntos: 2
consulta a bbdd no funciona en función

hola buenas a todos, os comento mi problema. estoy realizando una función para saber los días festivos, el fncionamiento es sencillo: se consideran días festivos tanto los sábado y domingos cómo los días insertados en una bbdd como festivos.

El problema es que al realizar la consulta a la bbdd dentro de la función me salta el error, no así si la ejecuto directamente en el script, os pongo el ejemplo:

Código PHP:
<?php
$fechasiguiente
="2013-12-07";

$consulta2 "SELECT COUNT(*) FROM $dbDb.festivos WHERE dia='$fechasiguiente'";
    
$result2 $db->prepare($consulta2);
    
$result2->execute();
    
    if(
$result2->fetchColumn()==0){
        echo 
"no es festivo";
    }else{
        echo 
"FIESTA!!";
    }
?>
Este código me funciona bien, pero si hago esto otro:

Código PHP:
<?php
//conexion a bbdd
    
require_once "../bbdd/conecta.php";
    
$db conectaDb();

$fechasiguiente="2013-12-04";
    
    
// función para comprobar días no lectivos
    
$probando comprobarDia($fechasiguiente);

function 
comprobarDia($fecha){
        
        
//se obtiene el dia de la emana
        
$diasemana date(lstrtotime($fecha));
        echo 
$diasemana; echo $fecha;
        
        
//si es fin de semana, directamente es no lectivo
        
if($diasemana=="Saturday" || $diasemana=="Saturday"){
            
$comprueba=" no lectivo ";
            return 
$comprueba;
            
        
//si no es fin de semana, debemos comprobar que no se encuentre en la lista de día de fiesta
        
}else{
            
$consulta "SELECT COUNT(*) FROM $dbDb.festivos WHERE dia='$fecha'";
            
$result $db->prepare($consulta);
            
$result->execute();
            if(
$result->fetchColumn()>=1){
                
$comprueba="nolectivo";
            }
            else{
                
$comprueba="lectivo";
            }
            
            return 
$comprueba;
        }
        return 
$comprueba;
    }
?>
me salta el siguiente error en WAMP

Fatal error: Call to a member function prepare() on a non-object in C:\wamp\www\proyecto\php\nolectivos.php on line 39