Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/02/2010, 00:59
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: Intentando entender la clase mysql

Buenas,

Muchas gracias por las explicaciones, las intento aplicar pero no tengo éxito. Creo que me falta una cosa.

Este es el código de la clase. Si os fijáis he añadido en la linea 13 y 18 los parámetros y me dice lo siguiente:


Código:
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\00-laboratorio_test\secciones\mysql\clase_mysql_1\class-mysql.php on line 20

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\00-laboratorio_test\secciones\mysql\clase_mysql_1\class-mysql.php on line 26

Warning: Invalid argument supplied for foreach() in C:\AppServ\www\00-laboratorio_test\secciones\mysql\clase_mysql_1\ejemplo.php on line 16

Clase
Código PHP:
Ver original
  1. <?php
  2.  
  3. class DataBase {
  4.  
  5.     private $conexion;
  6.     private $resource;
  7.     private $sql;
  8.     public static $queries;
  9.     private static $_singleton;
  10.  
  11.     public static function getInstance(){
  12.         if (is_null (self::$_singleton)) {
  13.             self::$_singleton = new DataBase($servidor, $user, $password, $db);
  14.         }
  15.         return self::$_singleton;
  16.     }
  17.  
  18.     private function __construct($servidor, $user, $password, $db){
  19.         $this->conexion = @mysql_connect($servidor, $user, $password);
  20.         mysql_select_db($db, $this->conexion);
  21.         $this->queries = 0;
  22.         $this->resource = null;
  23.     }
  24.  
  25.     public function execute(){
  26.         if(!($this->resource = mysql_query($this->sql, $this->conexion))){
  27.             return null;
  28.         }
  29.         $this->queries++;
  30.         return $this->resource;
  31.     }
  32.  
  33.     public function alter(){
  34.         if(!($this->resource = mysql_query($this->sql, $this->conexion))){
  35.             return false;
  36.         }
  37.         return true;
  38.     }
  39.  
  40.     public function loadObjectList(){
  41.         if (!($cur = $this->execute())){
  42.             return null;
  43.         }
  44.         $array = array();
  45.         while ($row = @mysql_fetch_object($cur)){
  46.             $array[] = $row;
  47.         }
  48.         return $array;
  49.     }
  50.  
  51.     public function setQuery($sql){
  52.         if(empty($sql)){
  53.             return false;
  54.         }
  55.         $this->sql = $sql;
  56.         return true;
  57.     }
  58.  
  59.     public function freeResults(){
  60.         @mysql_free_result($this->resource);
  61.         return true;
  62.     }
  63.  
  64.     public function loadObject(){
  65.         if ($cur = $this->execute()){
  66.             if ($object = mysql_fetch_object($cur)){
  67.                 @mysql_free_result($cur);
  68.                 return $object;
  69.             }
  70.             else {
  71.                 return null;
  72.             }
  73.         }
  74.         else {
  75.             return false;
  76.         }
  77.     }
  78.  
  79.     function __destruct(){
  80.         @mysql_free_result($this->resource);
  81.         @mysql_close($this->conexion);
  82.     }
  83. }
  84. ?>

Script

Código PHP:
Ver original
  1. <?php
  2. include('class-mysql.php');
  3.  
  4. // Hacemos la conexión
  5. $db = DataBase::getInstance('localhost','root','pass12421','mibasededatos');
  6.  
  7. // Supongamos que tenemos una tabla de usuarios
  8. // Hacemos la consulta:
  9. $db->setQuery("SELECT * FROM wp_posts");
  10.  
  11. // La ejecutamos y al mismo tiempo obtenemos un arreglo de objetos
  12. // con los campos especificados en la consulta como propiedades.
  13. $usuarios = $db->loadObjectList();
  14.  
  15. // Los imprimimos directamente en pantalla...
  16. foreach($usuarios as $usuario){
  17.     echo 'ID: '.$usuario->ID;
  18.     echo 'Nombre: '.$usuario->post_name;
  19.     echo 'Grupo: '.$usuario->post_status;
  20.     echo '<br />';
  21. }
  22.  
  23. ?>

Qué es lo que falta para que acabe de funcionar esto? :S

Muchas gracias por vuestra ayuda!