Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/07/2013, 08:13
PSPforever
 
Fecha de Ingreso: marzo-2008
Mensajes: 186
Antigüedad: 16 años, 1 mes
Puntos: 3
Pregunta Novato con POO: me salta error al hacer consultas

Hola

Estoy empezando con POO y tengo creado estas 2 clases:

conn.inc.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. define("BD", "artwork");
  4. define("HOST", "localhost");
  5. define("USER", "root");
  6. define("PASS", "");
  7.  
  8. //global $db;
  9.  
  10. class Conexion
  11. {
  12.     public $db;
  13.  
  14.     public function conectar($dbase)
  15.     {
  16.         try{
  17.             $this -> db = $dbase;
  18.             $this -> db = new PDO('mysql:host=' . HOST . ';dbname=' . $dbase, USER, PASS);
  19.             echo "Ok Connect";
  20.         } catch(PDOException $e) {
  21.             echo "Error: " . $e->getMessage();
  22.         }
  23.     }
  24.  
  25. }
  26.  
  27. $con = new Conexion();
  28. $con -> conectar(BD);
  29.  
  30. //error_reporting(0);
  31.  
  32. ?>

paginasModelo.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. require("../cgi-bin/conn.inc.php");
  4.  
  5. class paginasModelo
  6. {
  7.  
  8.     public function consultaPaginas()
  9.     {
  10.         try{
  11.             $consulta = $db -> prepare('SELECT id, titulo, orden FROM paginas');
  12.             $consulta -> execute();
  13.             return $consulta -> fetchAll();
  14.             echo "Ok";
  15.         } catch(PDOException $e) {
  16.             echo "Error: ".$e -> getMessage();
  17.         }
  18.     }
  19. }
  20.  
  21. $pag = new PaginasModelo();
  22. $pag -> consultaPaginas();
  23.  
  24. ?>

Y al entrar en paginasModelo.php me salta el error:

Código PHP:
Ver original
  1. Ok Connect
  2. Notice: Undefined variable: db in C:\xampp\htdocs\photoartwork\modelos\paginas.modelo.php on line 11
  3.  
  4. Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\photoartwork\modelos\paginas.modelo.php on line 11

Seguro que es una bobada, pero no logro dar con la solución.

Espero vuestra ayuda, gracias por anticipado.