ccc

Bases de datos 4: Cómo realizar una consulta en mi base de datos

<?php
// En nuestra clase clase_db añadimos la siguiente función

public function get_consulta($query, $parametros = array()) {
        if(!$this->handler)
            $this->conectar(); // se encarga ya de conectar él mismo a la BD

        // Prepara la consulta
        $statement = $this->handler->prepare($query);

        // Valida la consulta
        if($statement === false)
        {
            $errorInfo = $this->handler->errorInfo();
            throw new SpoonDatabaseException($errorInfo[2]);
        }

        // Si tiene parámetros
        foreach($parametros as $label => $value)
            $statement->bindValue((is_int($label) ? $label + 1 : (string) $label), $value, $this->getType($value));

        $statement->execute();
        if($statement->errorCode() != 0)
        {
            $aError = $statement->errorInfo();
            throw new SpoonDatabaseException($aError[2]);
        }

        // Devuelve las  keys
        //$aRecord = $statement->fetch(PDO::FETCH_ASSOC);
        $aRecords = (array) $statement->fetchAll(PDO::FETCH_ASSOC);

        // Retorna null cuando no hay nada
        //return ($aRecord === false) ? null : $aRecord;
        return (count($aRecords) != 0) ? $aRecords : null;
   }
?>

<?php
// Ahora desde cualquier otro fichero PHP podemos requerir la clase de la BD y usar esa función
require("clase_db.php");
$mi_clase = new clase_db(); // en $mi_clase ya tenemos una instancia de esa base de datos con la q trabajar
$consulta = "select titulo from peliculas";
$registros = $mi_clase ->get_consulta($consulta);

// Ahora mismo en $registros tenemos todos los registros resultantes de la consulta
// Para recorrerlo ahora lo mejor es un for
$total_reg = count($registros);
for ($i=0; $i<$total_reg; $i++)  {

    echo $registros[$i]["titulo"];
    echo "<br>";
}
unset($mi_clase); // Cuando no vayamos a usarlo más la eliminamos del todo
?>


Si tienes alguna duda o problema en PHP haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible

No hay comentarios:

Publicar un comentario