Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema al insertar datos en BBDD

Estas en el tema de Problema al insertar datos en BBDD en el foro de PHP en Foros del Web. Hola gente, espero esten bien. Tengo un problema al intentar insertar datos en la base de datos y es que me sale este error: Código: ...
  #1 (permalink)  
Antiguo 23/09/2015, 20:03
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 424
Antigüedad: 8 años, 8 meses
Puntos: 12
Problema al insertar datos en BBDD

Hola gente, espero esten bien.

Tengo un problema al intentar insertar datos en la base de datos y es que me sale este error:
Código:
Field 'pregunta' doesn't have a default value
El problema es que este campo no es nombrado en ninguna parte del codigo es por eso que no comprendo porque siquiera lo nombra.

Aqui dejo el code que tiene que ejecutarse:

Código PHP:
$cantidad_actual=$linea['vp'];
            
$resultado_cantidad=$cantidad_actual+10;
            
mysqli_query($conexion,"UPDATE account SET vp='$resultado_cantidad', fecha='$fecha_actual' WHERE username='Admin'")or die(mysqli_error($conexion));
            
$votacion_total=$linea['vp'];
            
$fecha_d++;
            
$fecha_restante=$fecha_d."-".$fecha_m."-".$fecha_a;
            echo 
"Puntos de Votacion: ".$votacion_total."<br/>"." Podra volver a votar el: $fecha_restante"." "."a las ".$linea['hora']; 
Espero puedan ayudarme, gracias de antemano!
  #2 (permalink)  
Antiguo 23/09/2015, 20:55
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, 5 meses
Puntos: 2658
Respuesta: Problema al insertar datos en BBDD

Que no lo nombres en el código PHP no implica que no exista en la base, sino todo lo contrario: Lo olvidaste y las constraint de la base te lo están recordando...
La cosa es simple: Ese campo en la tabla de la base esta declarado como NOT NULL, pero no lo estas incluyendo en el INSERT, y tampoco tiene un valor DEFAULT. En consecuencia se dispara un error al insertar.
Como no es nulable, no puedes esperar a actualizarlo con UPDATE, su valor debe estar en el INSERT, o bien corriges la tabla para permitir nulos, o le pines un valor por default.
Tu eliges.
__________________
¿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 23/09/2015, 22:05
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 424
Antigüedad: 8 años, 8 meses
Puntos: 12
Respuesta: Problema al insertar datos en BBDD

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Que no lo nombres en el código PHP no implica que no exista en la base
Ahora tengo otro problema con las variables.

El problema es que no me actualiza los datos.
es decir, quiero cambiarles el dato que tiene por el que se ha puesto en la DB, pero no em sirve, y es que el code se lee de arriba hacia abajo deberia de funcionar, perono funciona...

Código PHP:
while($linea mysqli_fetch_array($pconsulta,MYSQL_ASSOC)){
            
$horas=date(h);
            
$minutos=date(i);
            
$segundos=date(s);
            
$fecha_hora=$horas.":".$minutos.":".$segundos;
            
$fecha_d=date(d);
            
$fecha_m=date(m);
            
$fecha_a=date(Y);
            
$fecha_restante=$fecha_d."-".$fecha_m."-".$fecha_a;
            
$puntos_votacion=10;
            
mysqli_query($conexion,"UPDATE account SET vp='$puntos_votacion',fecha='$fecha_restante',hora='$fecha_hora' WHERE id='1'")or die(mysqli_error($conexion));
            
$fecha_d++;
            
$fecha_restante=$fecha_d."-".$fecha_m."-".$fecha_a;
            
$puntos_votacion=$linea['vp'];
            
$fecha_hora=$linea['hora'];
            echo 
"Gracias por tu votacion!<br/>";
            echo 
"Puntos de Votacion: ".$puntos_votacion."<br/>"." Podra volver a votar el dia: ".$fecha_restante." "."a las ".$fecha_hora;
            } 
Ps mira las variables debajo de la consulta de UPDATE, las de: "puntos_votacion" y "fecha_hora" me dan los datos que tiene antesd e hacer el UPDATE y deberia darme los datos que tiene luego de hacer dicho UPDATE no es asi?

Porque no me da los datos que tienen los campos luego del UPDATE??.

Espero puedas ayudarme, gracias de antemano!!
  #4 (permalink)  
Antiguo 24/09/2015, 06:13
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, 5 meses
Puntos: 2658
Respuesta: Problema al insertar datos en BBDD

Cita:
las variables debajo de la consulta de UPDATE, las de: "puntos_votacion" y "fecha_hora" me dan los datos que tiene antesd e hacer el UPDATE y deberia darme los datos que tiene luego de hacer dicho UPDATE no es asi?
No, no es así, porque PHP no "dialoga" con MySQL, y ni siquiera con el SQL. Son entornos independientes, aunque estén parcialmente embebidos.
Si el UPDATE genera un cambio en los datos que tu necesitas recuperar, debes hacer un nuevo SELECT para ello, cosa que NO estás haciendo, o bien generar el calculo dentro de PHP y luego almacenarlo directamente y solamente tomarlo como valido si el UPDATE se ejecutó correctamente (mysqli_affected_rows() devuelve un valor mayor a cero).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: bbdd, fecha, mysql, 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 06:24.