Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Novato con clases PHP y Mysqli

Estas en el tema de Novato con clases PHP y Mysqli en el foro de PHP en Foros del Web. Mis amigos trato de crear un método de mi clase en la cual tengo conexiones y query: Obvie ciertas partes del codigo que funcionan muy ...
  #1 (permalink)  
Antiguo 13/08/2013, 08:51
Avatar de j_silk_h  
Fecha de Ingreso: julio-2010
Mensajes: 54
Antigüedad: 13 años, 8 meses
Puntos: 6
Pregunta Novato con clases PHP y Mysqli

Mis amigos trato de crear un método de mi clase en la cual tengo conexiones y query:

Obvie ciertas partes del codigo que funcionan muy bien, "query" funciona bien

Código PHP:
class Db{

    private 
$conex;

    public function 
ejecutar($sql){
        
$this->conex->query($sql);
    }
    
    public function 
totalRegistros(){
        
//como procedo para colocar aqui la (num_rows) y que este me devuelva la cantidad de registros de la consulta anterior 
    
}

Y lo llamo de la siguiente forma

Código PHP:
    $bd Db::getInstance();
    
$bd->ejecutar("SELECT * FROM ubicaciones");//funciona muy bien
    //$bd->totalRegistros();//aqui necesito su ayuda 

Última edición por j_silk_h; 13/08/2013 a las 09:06
  #2 (permalink)  
Antiguo 13/08/2013, 09:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Novato con clases PHP y Mysqli

Debes almacenar el resultado de la consulta en algún lado, ¿no te parece lógico?
Código PHP:
Ver original
  1. $this->result = $this->conex->query($sql);

Y ya puedes usar dicha variable para lo que te hace falta.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/08/2013, 09:27
Avatar de j_silk_h  
Fecha de Ingreso: julio-2010
Mensajes: 54
Antigüedad: 13 años, 8 meses
Puntos: 6
Respuesta: Novato con clases PHP y Mysqli

Cita:
Iniciado por pateketrueke Ver Mensaje
Debes almacenar el resultado de la consulta en algún lado, ¿no te parece lógico?
Código PHP:
Ver original
  1. $this->result = $this->conex->query($sql);

Y ya puedes usar dicha variable para lo que te hace falta.
La verdad si, muy lógico, solo que lo hacia sin el $this-> tengo muy coca experiencia en POO.

+10
  #4 (permalink)  
Antiguo 13/08/2013, 09:32
Avatar de j_silk_h  
Fecha de Ingreso: julio-2010
Mensajes: 54
Antigüedad: 13 años, 8 meses
Puntos: 6
Información Respuesta: Novato con clases PHP y Mysqli

Solución final a todo esto:

Archivo config.php

Código PHP:
<?php
$host 
"localhost";
$user "root";
$password "";
$db "administrativo";
?>
Archivo php.php


Código PHP:
<?php
session_start
();
date_default_timezone_set("America/Caracas");

class 
Conf{
    private 
$_user;
    private 
$_password;
    private 
$_host;
    private 
$_database;
    
    static 
$_instance;
    
    private function 
__construct(){
        require(
"config.php");
        
$this->_user=$user;
        
$this->_password=$password;
        
$this->_host=$host;
        
$this->_database=$db;
    }
    
    private function 
__clone(){
    }
    
    public static function 
getInstance(){
        if(!(
self::$_instance instanceof self)){
            
self::$_instance = new self;
        }
        return 
self::$_instance;
    }
    
    public function 
getUserDB(){
        
$var $this->_user;
        return 
$var;
    }
    
    public function 
getHostDB(){
        
$var $this->_host;
        return 
$var;
    }
    
    public function 
getPassDB(){
        
$var $this->_password;
        return 
$var;
    }
    
    public function 
getDB(){
        
$var $this->_database;
        return 
$var;
    }
}

class 
Db{
    private 
$servidor;
    private 
$usuario;
    private 
$password;
    private 
$database;
    private 
$conex;
    private 
$result;
    
    static 
$_instance;
    
    private function 
setConexion(){
        
$conf Conf::getInstance();
        
$this->servidor=$conf->getHostDB();
        
$this->database=$conf->getDB();
        
$this->usuario=$conf->getUserDB();
        
$this->password=$conf->getPassDB();
    }
    
    private function 
__construct(){
        
$this->setConexion();
        
        try{
            
$this->conex = new mysqli($this->servidor$this->usuario$this->password$this->database);
        }catch(
Exception $e){
            echo 
$e->getMessage();
        }
    }
    
    public static function 
getInstance(){
        if(!(
self::$_instance instanceof self)){
            
self::$_instance = new self();
        }
        return 
self::$_instance;
    }
    
    public function 
ejecutar($sql){
        
$this->result $this->conex->query($sql);
    }
    
    public function 
totalRegistros(){
        return(
$this->result->num_rows);
    }
    
}

function 
getUbicacionCliente(){
    
    
$ip $_SERVER["REMOTE_ADDR"];//obtener direccion IP del cliente para realizar cualquier operacion con ella, en este caso buscarla en la BD

    
$bd Db::getInstance();// hace lo mismo de: $bd = new Db();
    
$bd->ejecutar("SELECT * FROM ubicaciones");
    echo 
$bd->totalRegistros();
}

Etiquetas: mysqli, novatos, poo
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 10:48.