Ver Mensaje Individual
  #6 (permalink)  
Antiguo 20/03/2016, 09:16
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 3 meses
Puntos: 2658
Respuesta: ERROR al ingresar valores en la BD

Cita:
Iniciado por wilson_romero Ver Mensaje
dice esto como que no marcha con el valor de la linea 1

Error en Consulta: Column count doesn't match value count at row 1


no se que haCER.
Ayer lo deje todo funcionando y ahora cuando prendo el host y intento probar me sale con esto >:(

esto son los valores de la base de datos

1 idPrimary int(33) No None AUTO_INCREMENT

que puedo hacer ?
Volviendo a lo que dije, y confirmándote lo que te dice rodocoyote15, el mensaje de error que devuelve MySQL es específicamente lo que te comento: el INSERT que pones envía seis datos, y tu table debe tener una cantidad diferente.
Si la cantidad de colunas es realmente la misma, lo que puede pasar es que uno de lso campos se haya corrompido por los datos que contiene, y genere un error de sintaxis indetectable sin debuggear.
Esto se produce por ejemplo cuando pones números con decimales donde usas coma y no punto, dado que la coma es un separador de campos en SQL y se debe usar punto en las queries. Cuando eso pasa el DBMS (todos) interpreta que la parte entera y la decimal son campos separados.
En tu caso no parece ser eso, pero sin ver el dato real que mandas en cada campo no se puede afirmar nada.

Ahora bien, lo mínimo es que verifiques lo que estás intentando enviar a la base con un echo, para lo cual las buenas prácticas dicen que NO PONGAS las queries directamente el las llamadas, sino en variables, cosa de poder analizarlas:
Código PHP:
$sql "INSERT INTO usuarios VALUES ('',' $ip','$fecha_hora','$nick',' $pass',' $email' )";
echo 
$sql;
$insert mysql_query($sql); 
 
if (!
$insert) {
    die(
'Error en Consulta: ' mysql_error());

POr otro lado, como ya de fijeron, no puedes enviar un caracter en blanco ni un vacío a un auto_increment, esos son caracteres y pueden disparar errores en ese caso. Además, lo que mysql espera es en todo caso un NULL, no un caracter. Pero ten en cuenta que debe ir NULL de SQL y no la palabra "NULL".

Código PHP:
$sql "INSERT INTO usuarios VALUES (NULL, '$ip', '$fecha_hora', '$nick', ' $pass', '$email')";
echo 
$sql;
$insert mysql_query($sql); 
 
if (!
$insert) {
    die(
'Error en Consulta: ' mysql_error());


Ademas de eso, ten cuidado al dejar espacios en blanco en las cadenas generadas de los valores, porque esos espacios (sobre todos los iniciales) pasarán al contenido de la base.
Lo digo porque estabas dejando un espacio en blanco delante de IP y del e-Mail.

Finalmente, ese INT(33) está muy mal escrito. Ese (33) es basura pura, porque ese valor no indica la cantidad de dígitos representables, que de todos modos en un INT no puede ser mayor a 11. Se usa para otra cosa y puede generar errores de representación luego en las consultas si usas VIEWs o realizas backups.
Para detalles de ese tipo, por favor, pregunta en el foro de BBDD, o lee el manual de referencia, que tiene un capitulo entero dedicado a los tipos de columna.

Para despejar dudas podrías postearnos lo que devuelve esto, así vemos realmente como es esa tabla:
Código MySQL:
Ver original
  1. SHOW CREATE TABLE usuarios;
Ejecútalo en el phpMyadmin y postea el resultado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)