Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

duda con clase para conexion a BD

Estas en el tema de duda con clase para conexion a BD en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas noches. Tengo la siguiente duda. he estado probando a hacer mi propia clase en PHP contra BDs. Normalmente trabajo contra pg, y la clase ...
  #1 (permalink)  
Antiguo 26/11/2006, 22:20
 
Fecha de Ingreso: agosto-2005
Ubicación: Mérida, Venezuela
Mensajes: 732
Antigüedad: 18 años, 8 meses
Puntos: 7
duda con clase para conexion a BD

Buenas noches.

Tengo la siguiente duda. he estado probando a hacer mi propia clase en PHP contra BDs. Normalmente trabajo contra pg, y la clase me ha funcionado hasta ahora. Pues bien, resulta que me ha salido un proyecto que toca pg y my, así que decidí tocar mi librería e incluirle soporte para my, pero...
Código PHP:
/* clase para interaccion con BD */
class dttc_my_db {

// definir variables para la conexion
   
var $db "miBd";    // Nombre de la BD
   
var $servidor "localhost";            // IP del servidor
   
var $usuario "miUsuario";      // Nombre de suario con que se conecta la BD
   
var $clave "*******";            // Clave de conexion a la BD

// identificador de conexion y de consultas
   
var $Conexion_ID 0;
   var 
$Query_ID 0;
   var 
$DConexion_ID 0;

// establecer la conexion
function dttc_my_dbConec(){
    
   
$link mysql_connect("localhost","********_uCorpo","lsadpvdltc") or die(mysql_error());
   
mysql_select_db($this->dttc_my_db);
   
$this->Conexion_ID $link;

   return 
$this->Conexion_ID//devolver el identificador
   
}

// Ejecutar una query
   
function dttc_my_dbC($sql ""){
      if (
$sql == "") {
         
$this->Error "No ha especificado una consulta SQL";
         return 
0;
      } else {
         
$query=$sql;
//       echo "$query<br>".
         //ejecutamos la consulta
         
$this->Query_ID mysql_query($query);
         return 
$this->Query_ID;
      }
   } 
si hago un echo $this->Conexion_ID; luego de establecer la conexión, me imprime un Resource... vamos bien.
si hago un echo $this->Conexion_ID; luego de ejecutar la query, me imprime un Resource... vamos bien.

Luego sigue un: return $this->Query_ID; que es donde debería almacenarse el Resource, le hago un echo, y ya no tiene nada!

Llamo la clase:

$conec = new dttc_my_db();
$conec->dttc_my_dbConec();

$query = "select * from sector";
$datos = $conec->dttc_my_dbC($query);
echo "d->".$datos."<-d";

y no se imprime nada...

Ideas?

Gracias de antemano...
__________________
Gracias de todas todas
-----
Linux!
  #2 (permalink)  
Antiguo 29/11/2006, 10:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
prueba un var_dump( $datos );
  #3 (permalink)  
Antiguo 29/11/2006, 16:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
El problema es que estas usando metodos muy inseguros, como session_register(), esto presume que estas usando globales, las cuales vienen por defecto desactivadas en las versiones mas nuevas de PHP.

Para remediar esto tienes que usar los super arreglos $_SESSION, $_POST, $_GET.

Esto hace mas limpio tu codigo y mas facil de digerir.
  #4 (permalink)  
Antiguo 29/11/2006, 18:04
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
Buenas, a simple vista, acá hay algo raro:


Código PHP:
   $link mysql_connect("localhost","********_uCorpo","lsadpvdltc") or die(mysql_error());
   
mysql_select_db($this->dttc_my_db); 
Por un lado, en la conexión estás usando valores "hardcodeados" aún cuando definiste variables para guardar esos valores. Igualmente, eso podría estar funcionando si los datos son correctos. Pero en la línea siguiente, donde seleccionás las base de datos, el nombre de la base no está definido dentro del objeto (la variable "dttc_my_db" ni está declarada, pero sí existe una "db".

Suerte
Califa
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 03:19.