Comunidad PHPeros

Lenguajes => PHP => (POO) Programación Orientada a Objetos => Mensaje iniciado por: Rastrillox en 23 de Diciembre de 2014, 07:06:38 am

Título: Usar PDO como clase ayuda!
Publicado por: Rastrillox en 23 de Diciembre de 2014, 07:06:38 am
Buenas, desde hace dias he estado trabajando con PDO, la nueva interfaz mysql orientado.
cuando llega la hora de conectarme a la base de datos usando dicha interfaz todo me conecta correctamente:


## MYSQL CONNECTION
try {
# DBNAME & DBHOST
$dsn = 'mysql:dbname=one_dance;host=localhost';
$pdo = new PDO($dsn,'root','1693');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e)
{
echo $e->getessage();
}


pero he creado una clase en la cual me haga una consulta a la bases de datos usando la conecxion:

class OpinionRotator
{
public $name, $message;

public static function readOpinion()
{
$query = $pdo->Query("SELECT * FROM guestbook ORDER BY id DESC");
        $query->setFetchMode(PDO::FETCH_CLASS, 'OpinionRotator');   
            while ($fetch = $query->fetch(PDO::FETCH_OBJ))
        {
            echo '<div class="cbp-qtcontent">
            <!-- <img src="images/1.jpg" alt="img01" /> -->
            <blockquote>
              <p>{$fetch->message}</p><!-- <div>”</div> -->
              <footer>{$fetch->name}</footer>
            </blockquote>
          </div>';
            }
}
}

new OpinionRotator;
OpinionRotator::readOpinion();


Lo que succede realmente es que no puedo acceder a la conecxion PDO = $pdo cuando estoy trabajando con clases, y hasta ahora no he encontrado como hacerlo, he intentado convertir la conecxion PDO en una clase pero no he tenido éxito.

Lo que ando realmente buscando es simplificar el código y que sea mas facil la edicion, en vez de colocarlo de esta forma:

<?php
            $query = $pdo->Query("SELECT * FROM guestbook ORDER BY id DESC");
            while ($fetch = $query->fetch(PDO::FETCH_OBJ)):
          ?>
          <div class="cbp-qtcontent">
            <!-- <img src="images/1.jpg" alt="img01" /> -->
            <blockquote>
              <p><?=textLimit($fetch->message);?></p><!-- <div>”</div> -->
              <footer><?=$fetch->name?></footer>
            </blockquote>
          </div>
        <?php endwhile;?>


Seria imprimirlo de esta manera:
OpinionRotator::readOpinion();

Estoy realmente desesperado por que no he podido avanzar con mi proyecto, necesito ayuda urgentemente, se les agradece.