Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problema al instanciar la clase conexion dentro de otra clase php

Estas en el tema de problema al instanciar la clase conexion dentro de otra clase php en el foro de PHP en Foros del Web. buenas noche en la actualidad tengo un inconveniente tengo un clase de registro la cual esta guardando correctamente los datos pero al momento que intento ...
  #1 (permalink)  
Antiguo 10/09/2013, 20:24
 
Fecha de Ingreso: agosto-2012
Mensajes: 54
Antigüedad: 11 años, 8 meses
Puntos: 1
problema al instanciar la clase conexion dentro de otra clase php

buenas noche en la actualidad tengo un inconveniente
tengo un clase de registro la cual esta guardando correctamente los datos pero al momento que intento cambiar el tipo de llamado de conexión a la base de datos mediante una clase de conexión instanciada esta me da como resultado que
Fatal error: Call to undefined method conn::query() in C:\wamp\www\dominio\carp\registro.class.php on line 44

en si mis falencia esta en la funciones guardar y existe agradezco su ayuda de antemano se los agradezco.

la clase de conecion es la siguiente

<?php
require'define.php';// esta pagina contiene la class de constantes
class steelmysqli {
private $servidor;
private $usuario;
private $clave;
private $base;

private static $_instance;

private $mysqli;

private function __construct() {
$this->define();
$this->complemento();
}

public static function getInstance(){
if (!(self::$_instance instanceof self)){
self::$_instance = new self();
}
return self::$_instance;
}

private function define(){
$define = define::getInstance();
$this->servidor = $define->server();
$this->usuario = $define->user();
$this->clave = $define->pass();
$this->base = $define->database();
}

private function __clone(){
}

private function extension() {
$this->mysqli = new mysqli($this->servidor, $this->usuario, $this->clave, $this->base);
if (mysqli_connect_errno()) {
printf("Falló la conexión: %s\n", mysqli_connect_error());
exit();
}
if (!$this->mysqli->set_charset("utf8")) {
printf("Error cargando el conjunto de caracteres utf8: %s\n", $this->mysqli->error);
} else {
printf("Conjunto de caracteres actual: %s\n", $this->mysqli->character_set_name());
}
$this->mysqli->close();
}
}
$mysqli = conn::getInstance();// con esto se llama y funciona correctamente
?>


bien y trato de realizar la inserción de datos mediante la siguiente class de registro


<?php
require'conn.php';// esta es la pagina de conexión que contiene la clase arriba expuesta
class registrar {

private $apodo;
private $contrasena;
private $encriptada;

private $advertencia;
private $token;
private $mysqli;

public function __construct() {
$this->extension();
}

private function extension(){

$this->apodo = $_POST['apodo'];
$this->contrasena = $_POST['contrasena'];
$this->encriptada = md5($this->contraseña);
$this->advertencia = array();
$this->token = $_POST['token'];
}

public function procesar() {
if($this->token() && $this->data())
$this->guardar();
return count($this->advertencia)? 0 : 1;
}

public function guardar() {
$mysqli = conn::getInstance();
$mysqli->query("INSERT INTO user(apodo,contrasena) VALUES ('{$this->apodo}','{$this->encriptada}')");
if($mysqli->affected_rows< 1)
$this->advertencia[] = no se pudo guardar los datos;
}

public function existe() {
$mysqli = conn::getInstance();
$result = $mysqli->query("SELECT id FROM user WHERE apodo = '{$this->apodo}'");
$row_cnt = $result->num_rows;
return $row_cnt? 1 : 0;
$result->close();
}

public function mostrar() {
echo "<h3>nota</h3>";
foreach($this->advertencia as $key=>$value)
echo $value."<br>";
}

public function data() {
if($this->isthere())
$this->errors[] = 'El seudonimo digitado ya se encuentra en uso';
if(empty($this->apodo))
$this->errors[] = 'Digite su seudonimo para ingresar a esta web';
if(empty($this->contrasena))
$this->errors[] = 'Sin la contraseña no podra ingresar en el futuro';
return count($this->advertencia)? 0 : 1;
}


public function valid_token() {
if(!isset($_SESSION['token']) || $this->token != $_SESSION['token'])
$this->errors[] = 'Invalido';
return count($this->advertencia)? 0 : 1;
}
}

?>
  #2 (permalink)  
Antiguo 10/09/2013, 21:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema al instanciar la clase conexion dentro de otra clase php

No existe ninguna clase llamada "conn" en los scripts que muestras, claramente el mensaje de error es por eso.

Si vas a usar conn::algo() entonces "conn" debería ser una clase.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: clase, conexion, instanciar, mysql, registro, select, sql
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 23:12.