Foros del Web » Programando para Internet » PHP »

Problema Call to a member function bind_param() on a non-object

Estas en el tema de Problema Call to a member function bind_param() on a non-object en el foro de PHP en Foros del Web. Hola! Tengo un problemita. Esta es mo tabla: Código PHP: CREATE TABLE USUARIO (      ID INT AUTO_INCREMENT NOT NULL ,      ESTADO INT NOT NULL  DEFAULT  1 ,      RANGO INT NOT NULL  DEFAULT  1 , ...
  #1 (permalink)  
Antiguo 01/09/2011, 08:38
Myl
 
Fecha de Ingreso: agosto-2011
Mensajes: 61
Antigüedad: 12 años, 8 meses
Puntos: 3
Problema Call to a member function bind_param() on a non-object

Hola!

Tengo un problemita.

Esta es mo tabla:
Código PHP:
CREATE TABLE USUARIO(
    
ID INT AUTO_INCREMENT NOT NULL,
    
ESTADO INT NOT NULL DEFAULT 1,
    
RANGO INT NOT NULL DEFAULT 1,
    
NOMBRE CHAR(80NOT NULL,
    
APELLIDO CHAR(80NOT NULL,
    
RUT CHAR(15NOT NULL,
    
EMPRESA CHAR(80NOT NULL,
    
RUT_EMPRESA CHAR(15NOT NULL,
    
PAIS CHAR(25NOT NULL,
    
CIUDAD CHAR(40NOT NULL,
    
EMAIL CHAR(40NOT NULL,
    
TELEFONO CHAR(15NOT NULL,
    
USUARIO CHAR(30NOT NULL,
    
CLAVE CHAR(10NOT NULL,
    
PRIMARY KEY(ID)
); 
Y este mi codigo:
Código PHP:
require_once('conexion.php');
$conexion conectar();
$id $_GET["id"];

$sql "SELECT EMAIL FROM USUARIO WHERE ID = ?";
$statement $conexion -> prepare($sql);
$statement -> bind_param("i"$id);
$statement -> execute();
$statement -> bind_result($email);
$statement -> fetch();
$statement -> close();

if(isset (
$email)){
    
$sql "UPDATE USUARIO SET ESTADO = 1 WHERE ID = ?";
    
$statement $conexion -> prepare($sql);
    
$statement -> bind_param("i",$id);

    if(
$statement -> execute()){
        echo 
"Bien";
    }
    
$statement -> close();
}
$conexion -> close(); 
Y no consigo hacerlo funcionar, lo he hecho de varias formas pero solo consigo un error de vuelta.
  #2 (permalink)  
Antiguo 01/09/2011, 08:45
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 8 meses
Puntos: 194
Respuesta: Problema Call to a member function bind_param() on a non-object

Estas biendeando mal los datos, intenta algo así.

Código PHP:
require_once('conexion.php');
$conexion conectar();
$id $_GET["id"];

$sql "SELECT EMAIL FROM USUARIO WHERE ID = :i";
$statement $conexion -> prepare($sql);
$statement -> bind_param(":i"$id);
$statement -> execute();
$statement -> bind_result($email);
$statement -> fetch();
$statement -> close();

if(isset (
$email)){
    
$sql "UPDATE USUARIO SET ESTADO = 1 WHERE ID = :i";
    
$statement $conexion -> prepare($sql);
    
$statement -> bind_param(":i",$id);

    if(
$statement -> execute()){
        echo 
"Bien";
    }
    
$statement -> close();
}
$conexion -> close(); 
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #3 (permalink)  
Antiguo 01/09/2011, 08:51
Myl
 
Fecha de Ingreso: agosto-2011
Mensajes: 61
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Problema Call to a member function bind_param() on a non-object

Cita:
Iniciado por h2swider Ver Mensaje
Estas biendeando mal los datos, intenta algo así.

Código PHP:
require_once('conexion.php');
$conexion conectar();
$id $_GET["id"];

$sql "SELECT EMAIL FROM USUARIO WHERE ID = :i";
$statement $conexion -> prepare($sql);
$statement -> bind_param(":i"$id);
$statement -> execute();
$statement -> bind_result($email);
$statement -> fetch();
$statement -> close();

if(isset (
$email)){
    
$sql "UPDATE USUARIO SET ESTADO = 1 WHERE ID = :i";
    
$statement $conexion -> prepare($sql);
    
$statement -> bind_param(":i",$id);

    if(
$statement -> execute()){
        echo 
"Bien";
    }

    
$statement -> close();
}
$conexion -> close(); 
Da error en esta linea:
Código PHP:
$sql "SELECT EMAIL FROM USUARIO WHERE ID = :i";
$statement $conexion -> prepare($sql);
$statement -> bind_param(":i"$id); <---------AQUI 
  #4 (permalink)  
Antiguo 01/09/2011, 08:55
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema Call to a member function bind_param() on a non-object

Que tal Myl,

Estas seguro que prepare te devuelve un Statement ?, porque el error te esta diciendo que no es un objeto...

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #5 (permalink)  
Antiguo 01/09/2011, 08:55
Myl
 
Fecha de Ingreso: agosto-2011
Mensajes: 61
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Problema Call to a member function bind_param() on a non-object

Si lo hago asi, da error en el segundo bind_param

Código PHP:
require_once('conexion.php');
$conexion conectar();
$id $_GET["id"];

$sql "SELECT EMAIL FROM USUARIO WHERE ID = ?";
$statement $conexion -> prepare($sql);
$statement -> bind_param("i"$id);
$statement -> execute();
$statement -> bind_result($email);
$statement -> fetch();
$statement -> close();

if(isset (
$email)){
    
$sql "UPDATE USUARIO SET ESTADO = 1 WHERE ID = ?";
    
$statement $conexion -> prepare($sql);
    
$statement -> bind_param("i",$id); <--- AQUI

    
if($statement -> execute()){
        echo 
"Bien";
    }
    
$statement -> close();
}
$conexion -> close(); 
  #6 (permalink)  
Antiguo 01/09/2011, 10:34
Myl
 
Fecha de Ingreso: agosto-2011
Mensajes: 61
Antigüedad: 12 años, 8 meses
Puntos: 3
Respuesta: Problema Call to a member function bind_param() on a non-object

Cita:
Iniciado por masterpuppet Ver Mensaje
Que tal Myl,

Estas seguro que prepare te devuelve un Statement ?, porque el error te esta diciendo que no es un objeto...

Saludos.
Pues si, use la misma sentecia directamente en la Base de Datos y funciona bien. Si lo hago con php me da error. Ademas, como veras, antes de eso, tambien hago un SELECT de la usando el mismo ID y funciona bien.
  #7 (permalink)  
Antiguo 01/09/2011, 11:01
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Problema Call to a member function bind_param() on a non-object

haz un un var_dump de $statement en donde falla para ver que tipo de dato es y postea el código de conectar.
__________________
http://es.phptherightway.com/
thats us riders :)

Etiquetas: call, function, sql, tabla, 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 07:45.