Cita:
Iniciado por wilson_romero
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:
Ejecútalo en el phpMyadmin y postea el resultado.