Foros del Web » Programando para Internet » PHP »

Instanciar objeto de coneccion

Estas en el tema de Instanciar objeto de coneccion en el foro de PHP en Foros del Web. Hola a todos, trabajo en .net pero estoy intentando crear un sitio en php y he tenido algunos problemas, generalmente los soluciono pero este me ...
  #1 (permalink)  
Antiguo 23/01/2013, 08:31
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 9 meses
Puntos: 0
Instanciar objeto de coneccion

Hola a todos,

trabajo en .net pero estoy intentando crear un sitio en php y he tenido algunos problemas, generalmente los soluciono pero este me ha superado.

lo que pasa es que consegui una clase para hacer la coneccion con la base.

Código:
<?php

/* Clase encargada de gestionar las conexiones a la base de datos */
Class Conectar{

   private $servidor='localhost';
   private $usuario='XXX';
   private $password='XXX!';
   private $base_datos='XXX';
   private $link;
   private $stmt;
   private $array;

   static $_instance;

   /*La función construct es privada para evitar que el objeto pueda ser creado mediante new*/
   private function __construct(){
      $this->conectar();
   }

   /*Evitamos el clonaje del objeto. Patrón Singleton*/
   private function __clone(){ }

   /*Función encargada de crear, si es necesario, el objeto. Esta es la función que debemos llamar desde fuera de la clase para instanciar el objeto, y así, poder utilizar sus métodos*/
   public static function getInstance(){
      if (!(self::$_instance instanceof self)){
         self::$_instance=new self();
      }
      return self::$_instance;
   }

   /*Realiza la conexión a la base de datos.*/
   private function conectar(){
      $this->link=mysql_connect($this->servidor, $this->usuario, $this->password);
      mysql_select_db($this->base_datos,$this->link);
      @mysql_query("SET NAMES 'utf8'");
   }

   /*Método para ejecutar una sentencia sql*/
   public function ejecutar($sql){
      $this->stmt=mysql_query($sql,$this->link);
      return $this->stmt;
   }

   /*Método para obtener una fila de resultados de la sentencia sql*/

ACA ES MI PROBLEMA
   public function obtener_fila($stmt,$fila){
      if ($fila==0){
         $this->array=mysql_fetch_array($stmt);
      }else{
         mysql_data_seek($stmt,$fila);
         $this->array=mysql_fetch_array($stmt);
      }
      return $this->array;
   }

   //Devuelve el último id del insert introducido
   public function lastID(){
      return mysql_insert_id($this->link);
   }

}
?>
ENTONCES al hacer una segunda llamada al metodo obtener_fila me arroja este error:


Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\4Music\_clases\Conectar.php on line 48

las llamadas no estan mal , por que las pruebo de manera independiente y funcionan bien, pero al realizarlas juntas me da el error.

puede alguien ayudarme con este tema por favor.
gracias a todos.
  #2 (permalink)  
Antiguo 23/01/2013, 08:40
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Instanciar objeto de coneccion

es que está mal implementado, no sirve de mucho usar POO con una Liberia estructurada, además de que no usas el resource_link ($this->link) para las consultas.

si quieres algo realmente POO utiliza PDO o Doctrine2

aquí vemos que no es culpa del lenguiaje, sino la forma en que se implementa, PHP es multiparadigma por ello permite combinar POO con programación estructurada, aunque no siempre dichas combinaciones sean efectivas
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 23/01/2013, 08:56
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Instanciar objeto de coneccion

tratare de ver lo que comentas entonces, creeme creo que es mas complicado php que .net, quizaa sea por la experiencia que tengo en .net.

me gustaria trabajar en php para aprender mejor todo esto pero lo malo es que aca por lo menos no pagan tantom en php como por .net

y de algo ahi que vivr.jajaja saludos y gracias.
  #4 (permalink)  
Antiguo 23/01/2013, 09:02
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Instanciar objeto de coneccion

igual acá, el soporte tiene su precio $.$, pero PHP no tiene nada que envidiar a otros, Wordpress, Symfony2, ZendFW2 son claros ejemplos, entre otros
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 23/01/2013, 09:50
 
Fecha de Ingreso: enero-2013
Mensajes: 7
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Instanciar objeto de coneccion

te encuentro toda la razon.

Etiquetas: coneccion, instanciar, mysql, objeto, resultados, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:00.