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

PHP OO problema clase php con mysqli

Estas en el tema de problema clase php con mysqli en el foro de Frameworks y PHP orientado a objetos en Foros del Web. chicos espero que me puedan ayudar con esto estoy intentado crear una clase en php con mis consultas en mysqli,hize la function conectar y al ...
  #1 (permalink)  
Antiguo 28/12/2012, 10:25
 
Fecha de Ingreso: diciembre-2012
Mensajes: 9
Antigüedad: 11 años, 4 meses
Puntos: 0
problema clase php con mysqli

chicos espero que me puedan ayudar con esto estoy intentado crear una clase en php con mis consultas en mysqli,hize la function conectar y al parecer funciona pero no logro hacer funcionar la function select, soy nuevo en php orientado a objeto asi que espeor me puedan ayudar

Saludos !!

Adjunto codigo
Código PHP:
<?php
class prueba
{
    var 
$servidor="localhost";
    var 
$usuario="root";
    var 
$passwd="";
    var 
$bd="p";
    var 
$conexion;

    public function 
conectar()
    {
        
$conexion = new mysqli($this->servidor,$this->usuario,$this->passwd,$this->bd);

        if(
$conexion->errno)
        {
                echo 
"Falla al intentar conexion a MySQL <br>";
                echo 
"codigo error :"$conexion->connect_errno;
                echo 
" - " $conexion->connect_error;
                die();

        }
        else
        {
            echo 
$conexion->host_info;
            return 
$this->conexion;
        }
    }
var 
$select;
    public function 
Select()
    {
        
$this->select="select * from nombre";

        
$sentencia =$this->conexion->prepare($this->select);

        
$sentencia->execute();

        
$sentencia->bind_result($nombre);

        while(
$sentencia->fetch())
        {
            echo 
"$nombre";
        }

    }
?>
Código PHP:
<?php

    
require_once "clasePrueba.php";
    

    
$class = new prueba();

    echo 
$class->conectar();
    echo 
$class->seleccionar();

?>
  #2 (permalink)  
Antiguo 28/12/2012, 10:50
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: problema clase php con mysqli

Hola
El método es selccionar() no existe en tu clase

Hay varios errores, revisa muy bien tu código.
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 28/12/2012, 14:27
 
Fecha de Ingreso: diciembre-2012
Mensajes: 9
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: problema clase php con mysqli

perdon por el problema en el tipeo anterior es que tengo varias clase haciendo pruebas mira pongo el codigo corregido.
al momento de ejecutar me envio el siguiente error
Código:
Fatal error: Call to a member function prepare() on a non-object in C:\xampp\htdocs\po\clasePrueba.php on line 33
espero me puedan ayudar o explicar por ultimo que problema tengo porque estoy intentando aprender esta forma de programar

saludos !

Código PHP:
<?php
class prueba
{
    var 
$servidor="localhost";
    var 
$usuario="root";
    var 
$passwd="";
    var 
$bd="po";
    var 
$conexion;

    public function 
conectar()
    {
        
$conexion = new mysqli($this->servidor,$this->usuario,$this->passwd,$this->bd);

        if(
$conexion->errno)
        {
                echo 
"Falla al intentar conexion a MySQL <br>";
                echo 
"codigo error :"$conexion->connect_errno;
                echo 
" - " $conexion->connect_error;
                die();

        }
        else
        {
            echo 
$conexion->host_info;
            return 
$this->conexion;
        }
    }
    var 
$select;
    public function 
Select()
    {
        
$select="select * from nombre";

        
$this->sentencia =$this->conexion->prepare($this->select);

        
$sentencia->execute();

        
$sentencia->bind_result($nombre);

        while(
$sentencia->fetch())
        {
            echo 
"$nombre";
        }

    }
}
?>
Código PHP:
<?php

    
require_once "clasePrueba.php";
    

    
$class = new prueba();

    echo 
$class->conectar();
    echo 
$class->Select();

?>
  #4 (permalink)  
Antiguo 28/12/2012, 14:54
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: problema clase php con mysqli

lo principal que veo que tienes que hacer es consultar el manual de php5 ya que var es de php4, ahora se usan la visibilidad en las propiedades, ademas también por estandar debería de las clases debería de empezar con mayúsculas, los métodos debería de utilizar lowerCamelCase mas información para los estandares en el link que tengo en mi firma, ahora yendo a tu código
el atributo $this->conexion nunca esta siendo declarado, solo es u atributo pero nunca lo llenas, no puedes esperar que te de algo, ahora si retornaras $conexion o igualaras este a el $this->conexion es otra cosa.

de todas maneras hay varias clases de conexión que se han realizado acá en el foro, sería bueno que buscaras y tomaras ejemplo de ellas, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 28/12/2012, 16:16
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: problema clase php con mysqli

El código no lo he probado (Talvez contenga errores)
pero mas o menos debería ser así

Código PHP:
Ver original
  1. <?php
  2. class prueba
  3. {
  4.     protected $servidor="localhost";
  5.     protected $usuario="root";
  6.     protected $passwd="";
  7.     protected $bd="po";
  8.     protected $conexion;
  9.    
  10.     public function conectar()
  11.     {
  12.         $this->conexion = new mysqli($this->servidor,$this->usuario,$this->passwd,$this->bd);
  13.  
  14.         if($this->conexion->errno)
  15.         {
  16.                 echo "Falla al intentar conexion a MySQL <br>";
  17.                 echo "codigo error :". $this->conexion->connect_errno;
  18.                 echo " - " .$this->conexion->connect_error;
  19.                 die();
  20.  
  21.         }
  22.         else
  23.         {
  24.             echo $this->conexion->host_info;
  25.             return $this->conexion;
  26.         }
  27.     }
  28.    
  29.     public function select()
  30.     {
  31.         $select="select * from nombre";
  32.  
  33.         $sentencia =$this->conexion->prepare($select);
  34.  
  35.         $sentencia->execute();
  36.  
  37.         $sentencia->bind_result($nombre);
  38.  
  39.         while($sentencia->fetch())
  40.         {
  41.             echo "$nombre";
  42.         }
  43.  
  44.     }
  45. }
  46. ?>

Este es una clase muy rudimentaria, sera muy conveniente que leas los conceptos de la POO y patrones para que puedas tener mejores herramientas al momento de crear una clase.

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com

Etiquetas: clase, mysqli, php, usuarios
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 08:45.