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

como hacer consultas a BD mediante una clase

Estas en el tema de como hacer consultas a BD mediante una clase en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Olas a todos, bueno lo que deseo hacer es un procedimiento almacenado que lo unico que haga es ejecutar esta consulta por decir a la ...
  #1 (permalink)  
Antiguo 02/06/2006, 10:33
 
Fecha de Ingreso: octubre-2005
Mensajes: 85
Antigüedad: 18 años, 6 meses
Puntos: 0
como hacer consultas a BD mediante una clase

Olas a todos, bueno lo que deseo hacer es un procedimiento almacenado que lo unico que haga es ejecutar esta consulta por decir a la tabla cliente
slect * from cliente, ok jecutarla desde un pagina php y como obtengo ese resultado en una variable php, agradecere me ayuden en esto, el problema es que si la ejecuto desde una consola mysql me devuelve el resultado pero por decir si hago esto en php

$sql = "select * from cliente";
$rs = mysql_query($sql,$link);

el $rs aprece vacio, el problema pienso yo es de como hacer para que el procedimiento almacenado me devuelva este resultado, no creo que sea php,agradecer si lguien h visto sto me ayude en algo bye
  #2 (permalink)  
Antiguo 02/06/2006, 10:37
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Hola, en las FAQ's de este subforo hay creo que dos ejemplos de lo que quieres hacer. Ojala te sirvan.

A mi me gusta este:

Código PHP:
<?

///////////////////////////////////////////////////////////
//   Classe conectar y trabajar con MySQL               //
//   Realiado por: Sergio Sola ([email protected]) //
//   El: 13 de octubre 2005                           //
//   Licencia: GNU (http://www.gnu.org/)             //
//////////////////////////////////////////////////////

class conectarMySQL {
    
//iniciamos variables
    //atributos para conectar la base de datos
    
var $servidor//servidor donde se encuentra la base de datos
    
var $usuario//nombre de usuario de la base de datos
    
var $password//password de la base de datos 
    
var $bd//nombre de la base de datos a la que quieres acceder
    //////////////////////////////////////////////////////////////////////////
    
var $consulta//aquí se guarda las consultas que se realizan
    
var $enlace//aquí se almacena la conexión con la bd, sí se ha producido
    
var $resultado//aquí se guardan los datos que se generen de una consulta
    
    //constructor, donde se inicializan las variables
    
    
function conectarMySQL($servidor,$usuario,$password,$bd) {
        
$this->servidor=$servidor;
        
$this->usuario=$usuario;
        
$this->password=$password;
        
$this->bd=$bd;
    }
    
    
//conectamos con la base de datos
    
function conectar() {
        
//se realiza la conexión a la base de datos
        
if($this->enlace=mysql_connect($this->servidor,$this->usuario,$this->password)) {
            
//se intenta acceder a la base de datos que deseeamos
            
if(mysql_select_db($this->bd,$this->enlace)) {
                
//Sí es correcta muestra mensaje (sí quieres lo quitas, sólo sirve para ver si funciona).
                
echo "Conexión correcta";
            } else {
                
//Si falla muestra el mensaje que el error está al acceder a la base de datos
                
echo "No se ha podido seleccionar la  BD";
            }
        } else {
            
//Si falla la conexión con la base de datos se muestra el mensaje
            
echo "No se ha podido conectar a la bd";
        }                 
    }
    
    
//function consultas a la bd
    
function consultar($query) {
        
//aquí se realizan las consultas a la base de datos
        
$this->consulta=mysql_query($query,$this->enlace);
    }
    
    
//obtener resultados de la consulta
    
function obtendatos() {
        
//aquí se obtienen los datos de la consulta
        
$this->resultado=mysql_fetch_array($this->consulta);
        return 
$this->resultado;
    }
    
//cerramos la conexión con la base de datos
    
function cerrarconexion() {
        
mysql_close($this->enlace);
    }
    
//libera el contenido que se encuentra en el atributo 
    
function limpiaconsulta() {
        
mysql_free_result($this->consulta);
    }
}

//creamos el objeto con los datos de nuestra base de datos
$obj=new conectarMySQL("SERVIDOR","USUARIO","PASSWORD","BASE DE DATOS");
//realizamos la conexión a la base de datos
$obj->conectar();
//aquí realizamos la consulta que queramos
$obj->consultar("select * from urls limit 0,10");
//por ejemplo la de mostrar 10 direcciones de una tabla llamada urls..
while($row=$obj->obtendatos()) {
    echo 
"<br><a href=".$row['url'].">".$row['title']."</a>";
}
//limpiamos la consulta
$obj->limpiaconsulta();
//cerramos la conexión...
$obj->cerrarconexion();
?>
Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #3 (permalink)  
Antiguo 03/06/2006, 08:41
 
Fecha de Ingreso: octubre-2005
Mensajes: 85
Antigüedad: 18 años, 6 meses
Puntos: 0
ok amigo esa idea es buena, y de ante mano gracias por contestar pero lo que deseo es hacer lo mismo pero en vez de pasar una variable con la consulta, o de frente la consulta como String, es pasarle el nombre del procedimiento almcenado que esta en msyql y pasar el resultado a mi variable php
  #4 (permalink)  
Antiguo 06/06/2006, 09:08
 
Fecha de Ingreso: octubre-2005
Mensajes: 85
Antigüedad: 18 años, 6 meses
Puntos: 0
alguien sabe algo de como ejecutar sp en php, y no con insert si no sp para consultas
  #5 (permalink)  
Antiguo 06/06/2006, 09:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
solo manda un Query con el CALL procedure_name y sus parametros, no lo has probado?
  #6 (permalink)  
Antiguo 06/06/2006, 10:05
 
Fecha de Ingreso: octubre-2005
Mensajes: 85
Antigüedad: 18 años, 6 meses
Puntos: 0
eso hago pero por decir
$rs = mysql_query("call sp_trae_clientes",$link);

en este caso la varible $rs debe de tener el resultado, pero no lo hace, tu lo has probado y te funciona? por fis te sale a ti
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 04:13.