Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/01/2013, 14:55
PSPforever
 
Fecha de Ingreso: marzo-2008
Mensajes: 186
Antigüedad: 16 años, 1 mes
Puntos: 3
Exclamación Error de principiante al comenzar con PHP POO

Hola,

Tengo conocimientos básicos sobre PHP y me he decantado por profundizar más con este lenguaje, empezando por la metodología POO.

Haciendo un ejercicio super simple para conectar con la base de datos y realizar una consulta, me ha saltado un fallo. Seguro que es ridículo, pero forma parte de mi inexperiencia. No me enrollo más y pongo el código:

archivo pdoconnect.php. Clase para conectar con la base de datos (aquí todo funciona OK)

Código PHP:
Ver original
  1. <?php
  2. class connectBD{
  3. // connect info
  4. protected $bdata;
  5. protected $user;
  6. protected $pass;
  7. // construct
  8. public function __construct($bd,$us,$pa){
  9.     $this->bdata=$bd;
  10.     $this->user=$us;
  11.     $this->pass=$pa;
  12.     try{
  13.     $con = new PDO($this->bdata,$this->user,$this->pass);
  14.         } catch(PDOException $ec) {
  15.             echo "Error al conectar: ".$ec->getMessage();
  16.     }
  17. }//end __construct
  18. }//end class
  19. $conn = new connectBD("mysql:dbname=pruebas;host=localhost","root","");
  20. ?>

El siguiente archivo es pdoexec.php con el código que me tira el fallo:

Código PHP:
Ver original
  1. <?php
  2. include("pdoconnect.php");
  3. class execQuery extends connectBD{
  4.     protected $queryBD;
  5.     public function querydatabase($quer){
  6.         $this->queryDB=$quer;
  7.         try{
  8.             $query = $con->exec($this->queryDB);
  9.         }catch(PDOException $em){
  10.             echo "No se hizo la consulta: ".$em->getMessage();
  11.         }
  12.     }//end function
  13. }//end class
  14. $exq = new execQuery();
  15. $exq -> querydatabase("SELECT nombre,apellidos FROM datos");
  16. ?>

Y me salta el siguiente error en pantalla (en pdoexec.php):

Código PHP:
Ver original
  1. Warning: Missing argument 1 for connectBD::__construct(), called in C:\xampp\htdocs\phpracticas\pdoexec.php on line 14 and defined in C:\xampp\htdocs\phpracticas\pdoconnect.php on line 8
  2.  
  3. Warning: Missing argument 2 for connectBD::__construct(), called in C:\xampp\htdocs\phpracticas\pdoexec.php on line 14 and defined in C:\xampp\htdocs\phpracticas\pdoconnect.php on line 8
  4.  
  5. Warning: Missing argument 3 for connectBD::__construct(), called in C:\xampp\htdocs\phpracticas\pdoexec.php on line 14 and defined in C:\xampp\htdocs\phpracticas\pdoconnect.php on line 8
  6.  
  7. Notice: Undefined variable: bd in C:\xampp\htdocs\phpracticas\pdoconnect.php on line 9
  8.  
  9. Notice: Undefined variable: us in C:\xampp\htdocs\phpracticas\pdoconnect.php on line 10
  10.  
  11. Notice: Undefined variable: pa in C:\xampp\htdocs\phpracticas\pdoconnect.php on line 11
  12. Error al conectar: invalid data source name
  13. Notice: Undefined variable: con in C:\xampp\htdocs\phpracticas\pdoexec.php on line 8
  14.  
  15. Fatal error: Call to a member function exec() on a non-object in C:\xampp\htdocs\phpracticas\pdoexec.php on line 8

Si véis alguna burrada anormal en mi código, por favor sed comprensivos.

Espero vuestra ayuda, gracias por anticipado.