Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO conectar en un método de clase con una constante _CONEXION

Estas en el tema de conectar en un método de clase con una constante _CONEXION en el foro de PHP en Foros del Web. Buenas, me estoy volviendo majara con ésto Yo sé programar en lenguaje orientado a objetos con JAVA y sé Php estructurado así que he empezado ...
  #1 (permalink)  
Antiguo 08/10/2014, 12:38
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
conectar en un método de clase con una constante _CONEXION

Buenas, me estoy volviendo majara con ésto

Yo sé programar en lenguaje orientado a objetos con JAVA y sé Php estructurado así que he empezado a aventurarme en el mundo del PHPOO.

Resulta que pretendo hacer una constante definiendo el Mysqli_connect para que solo invocando a la constante me conecte. Pero siempre me sale el error

Warning: mysqli_error() expects exactly 1 parameter, 0 given in

Si incluyo el archivo dentro del método que lo invoca y luego llamo a una variable que sea igual a...
$conexion = mysqli_connect(....)
sí que me conecta, pero ya he intentado mil formas de hacerlo... y me manda en todas a tomar fanta...

Código PHP:
class Usuario
{
    public 
$nombre "";
    public 
$nick "";
    public 
$email "";
    public 
$pass "";
    public 
$token ="";
    
    function 
__construct(){
        
    }
    
    
/*
    * permite insertar un usuario en la base de datos y mandar el email de bienvenida
    */
    
function inserta_usuario($nombre$nick$email$pass){
        
$token genera_random(20);
        
//insertamos el nuevo usuario en la tabla temporal
        
$query_usu "INSERT INTO usuario_temp VALUES ('$nombre', '$nick', '$email', '$pass', '$token', 0, NOW())";
        try {
            
            
$insert_usu mysqli_query(AQUI VA LA CONEXION!!, $query_usu) or die(mysqli_error());
        } catch (
Exception $e) {
            
error_log("Error en el registro de la base de datos de un usuario nuevo. Tabla: usuario_temp. \n "+
                        
"Usuario: ".$nombreU. +
                        
"Nick: "$nickU. +
                        
"Email: ".$emailU. +
                        
"Contraseña: ".$passU1"[email protected]",  "Subject: Foo\nFrom: [email protected]\n");
        }
        
        if (
$insert_usu)
            echo 
"OK insert usu";
}

Por favor me podéis decir como lo haríais?
también he intentado igualarlo con un atributo dentro de la propia clase... pero también me es imposible... A lo mejor es preferible tener un GestorSQL con todas las consultas y los mysqli_query y que tenga por ahí la conexion? es que ya no sé... porque tampoco me lo ha cogido como atributo o no sé si lo hacía mal...
  #2 (permalink)  
Antiguo 08/10/2014, 12:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: conectar en un método de clase con una constante _CONEXION

Las constantes no pueden almacenar objetos.

En todo caso debes pasar la conexión como una propiedad de la instancia:
Código PHP:
Ver original
  1. class Foo {
  2.   function __construct() {
  3.     $this->conn = mysqli_connect(...);
  4.   }
  5.  
  6.   function query($sql) {
  7.     return mysqli_query($this->conn, $sql);
  8.   }
  9. }

Por favor consulta un manual de PHP OO.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 09/10/2014, 15:22
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: conectar en un método de clase con una constante _CONEXION

Cita:
Iniciado por pateketrueke Ver Mensaje
Las constantes no pueden almacenar objetos.

En todo caso debes pasar la conexión como una propiedad de la instancia:
Código PHP:
Ver original
  1. class Foo {
  2.   function __construct() {
  3.     $this->conn = mysqli_connect(...);
  4.   }
  5.  
  6.   function query($sql) {
  7.     return mysqli_query($this->conn, $sql);
  8.   }
  9. }

Por favor consulta un manual de PHP OO.
Muchas gracias me sirvió de mucho!!

Etiquetas: clase, conexion, constante, mysql, registro, sql, tabla, variable
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 16:40.