Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error en 'bind_param'

Estas en el tema de Error en 'bind_param' en el foro de PHP en Foros del Web. Hola gente; cuando trato de enviar los datos de registro a la base de datos, me aparece este error: Código: Warning: mysqli_stmt::bind_param(): Number of variables ...
  #1 (permalink)  
Antiguo 21/03/2015, 08:43
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 6 meses
Puntos: 145
Pregunta Error en 'bind_param'

Hola gente;

cuando trato de enviar los datos de registro a la base de datos, me aparece este error:

Código:
Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in [directorio del error y linea del código]
El código que por lo visto falla es el siguiente:

Código PHP:
Ver original
  1. // Inserta los datos en la base
  2.     $stm = $connection->prepare("INSERT INTO usuarios (email,password,activation_key,validated,ultima_ip) " . "VALUES ( ? , ? , ? , 0, '$ip' )");
  3.     $stm->bind_param("ssss",$email,$password,$random_key,$ip);

¿Alguien tiene idea de por qué no me acepta la cantidad de variables (4) si hay 4 eses en el parámetro?

Si le elimino "ultima_ip", '$ip', una ese y $ip, funciona bien...
  #2 (permalink)  
Antiguo 21/03/2015, 08:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Error en 'bind_param'

$ip no es una variable "bindeable", por decirlo de un modo bruto. Es una variable que debe estar previamente cargada, y no aplica a bind_param.
Si quieres usar bind_param, debes poner "?". Es la librería la que se encarga de buscar esas variables implícitas y enlazarlas con los valores que pasas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 21/03/2015, 08:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Error en 'bind_param'

Sí, colocas 4 (s) pero sólo tienes 3 (?) en la consulta.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 21/03/2015, 08:52
Avatar de NueveReinas  
Fecha de Ingreso: septiembre-2013
Ubicación: No tan Buenos Aires
Mensajes: 1.101
Antigüedad: 10 años, 6 meses
Puntos: 145
Respuesta: Error en 'bind_param'

Cita:
Iniciado por pateketrueke Ver Mensaje
Sí, colocas 4 (s) pero sólo tienes 3 (?) en la consulta.
Exactamente, era eso.

Código PHP:
Ver original
  1. $stm->bind_param("sss",$email,$password,$random_key);


Etiquetas: mysql, registro, usuarios, 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 18:56.