Foros del Web » Programando para Internet » PHP »

Column count doesn't match value count at row 1

Estas en el tema de Column count doesn't match value count at row 1 en el foro de PHP en Foros del Web. Hola! Estaba trabajando en un script que funcionaba perfecto, de repente, comenzo a aparecer este error: Column count doesn't match value count at row 1 ...
  #1 (permalink)  
Antiguo 17/12/2008, 02:15
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 22 años, 2 meses
Puntos: 4
Column count doesn't match value count at row 1

Hola!

Estaba trabajando en un script que funcionaba perfecto, de repente, comenzo a aparecer este error:

Column count doesn't match value count at row 1

De verdad, fue de la nada. Al menos eso creo. Segun he averiguado, quiere decir que intento enviar mas valores que campos he escpecificado, pero no. Aquí esta mi query:

Código PHP:
$query "INSERT INTO autores(id_ficha, nombre, profesion) VALUES('$id_obra', '$nombres_direccion[$i]', 'Director')"
Y mi estructura de la tabla:

Código PHP:
CREATE TABLE IF NOT EXISTS `autores` (
  `
idint(4NOT NULL auto_increment,
  `
id_fichavarchar(255collate utf8_unicode_ci NOT NULL,
  `
nombrevarchar(255collate utf8_unicode_ci default NULL,
  `
estadovarchar(255collate utf8_unicode_ci default NULL,
  `
profesionvarchar(255collate utf8_unicode_ci NOT NULL,
  `
biografiatext collate utf8_unicode_ci,
  
PRIMARY KEY  (`id`)
ENGINE=MyI 
El error completo es:

Error en INSERT INTO autores(id_ficha, nombre, profesion) VALUES('4', 'ZZZZLLLL', 'Director')
MySQL dice: Column count doesn't match value count at row 1


Y lo mas raro dde todo es que reviso el PhpMyAdmin y el registro SÍ se agregó correctamente! ahi están los valores con el ID auto-increment y tal!!

¿Que puede ser?

Alguna ayuda?

Samuel.
__________________
Equívocos sin importancia
  #2 (permalink)  
Antiguo 17/12/2008, 02:23
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Respuesta: Column count doesn't match value count at row 1

Edito porque no había leído bien el mensaje, lo siento :)

Saludos
  #3 (permalink)  
Antiguo 17/12/2008, 03:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Column count doesn't match value count at row 1

Creo que no es un problema del MySQL, es decir, tu sintaxis:
INSERT INTO autores(id_ficha, nombre, profesion) VALUES('4', 'ZZZZLLLL', 'Director')
está bien; es más, yo probaría en el sql del PHPMyAdmin a insertar esta consulta tal cual. Creo que no dará error.
Me temo que el problema es el modo en que puedes estar trabajando con el array, pues veo un array de PHP $nombres_direccion[$i]. Tal vez el resultado de esa variable no es un solo dato, una sola cadena de texto, o simplemente no encierra ningún valor, y esa puede ser la causa del problema. Otra posible razón es que no llegara el valor de la última variable, pero me dices que sí. Es lo que se me ocurre.
  #4 (permalink)  
Antiguo 17/12/2008, 10:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Column count doesn't match value count at row 1

Tema trasladado a PHP.

Claramente tu problema no esta en tu script SQL, si no mas bien en el codigo ya que te esta insertando correctamente el registro.

Saludos.
  #5 (permalink)  
Antiguo 17/12/2008, 10:07
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Column count doesn't match value count at row 1

Hola paloto...

Hazle un echo a tu consulta para que veas que está haciendo... Copias la consulta impresa y la pegas en mysql...

Algún valor que debe formar tu query no va bien...

Prueba eso

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #6 (permalink)  
Antiguo 17/12/2008, 11:13
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 22 años, 2 meses
Puntos: 4
Respuesta: Column count doesn't match value count at row 1

hola!


Bueno, así la situación. Gracias a todos por sus comentarios:

El código completo PHP al insertar es este:

Código PHP:
    if ($direccion <> "") {

        
$nombres_direccion explode(", ",$direccion);
        
$contar_direccion count($nombres_direccion);

         for (
$i 0$i $contar_direccion$i++) {

    
mysql_query("SET NAMES utf8");
    
$seleccionar "SELECT id, nombre, profesion FROM autores WHERE nombre = '$nombres_direccion[$i]'";
    
$query_select mysql_db_query($db$seleccionar$link) or die("Error en $query <br>MySQL dice: ".mysql_error());

        if (
mysql_num_rows($query_select) == ) {


    
mysql_query("SET NAMES utf8");
     
$query "INSERT INTO autores(id_ficha, nombre, profesion) VALUES('$id_obra', '$nombres_direccion[$i]', 'Director')";
    
mysql_db_query($db$query$link) or die("Error en $query <br>MySQL dice: ".mysql_error());

     
$ultimo_id_persona mysql_insert_id();
    
$insertar_ides "INSERT INTO obra_persona (id_obra, profesion, id_persona)  VALUES ('$id_obra', 'Director' '$ultimo_id_persona')";
    
mysql_db_query($db$insertar_ides$link) or die("Error en $query <br>MySQL dice: ".mysql_error());

        }


        else {

        
$extraer_datos_persona mysql_fetch_row($query_select);

        
$id_persona $extraer_datos_persona[0];
        
$profesion_persona_act $extraer_datos_persona[2];

        
$insertar_ides "INSERT INTO obra_persona (id_obra, profesion, id_persona)  VALUES ('$id_obra', 'Director', '$id_persona')";
        
mysql_db_query($db$insertar_ides$link) or die("Error en $query <br>MySQL dice: ".mysql_error());

        
$actualizar_profesion "UPDATE autores SET profesion='$profesion_persona_act Director' WHERE id='$id_persona'";
        
mysql_db_query($db$actualizar_profesion$link) or die("Error en $query <br>MySQL dice: ".mysql_error());

        }

    }


hice un echo a $nombres_direccion [$i] antes de hacer el query y los valores salen excelente. Luego viene el error de row1.


También deje solamente esta parte del código

Código PHP:
if ($direccion <> "") {

        
$nombres_direccion explode(", ",$direccion);
        
$contar_direccion count($nombres_direccion);

         for (
$i 0$i $contar_direccion$i++) {


    
mysql_query("SET NAMES utf8");
     
$query "INSERT INTO autores(id_ficha, nombre, profesion) VALUES('$id_obra', '$nombres_direccion[$i]', 'Director')";
    
mysql_db_query($db$query$link) or die("Error en $query <br>MySQL dice: ".mysql_error());


    }



E inserta los datos correctamente!

Realmente debe de haber algun error, una cosa que modifiqué aunque yo diga lo contrario, porque el primer código funcionaba perfectamente hasta ayer

Alguna ayuda?

Gracias.
__________________
Equívocos sin importancia
  #7 (permalink)  
Antiguo 17/12/2008, 11:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Column count doesn't match value count at row 1

Código php:
Ver original
  1. $insertar_ides = "INSERT INTO obra_persona (id_obra, profesion, id_persona)  VALUES ('$id_obra', 'Director' '$ultimo_id_persona')";

Te falta una coma (,) entre 'Director' y '$ultimo_id_persona'.

Saludos.
  #8 (permalink)  
Antiguo 17/12/2008, 11:44
Avatar de Threepwood  
Fecha de Ingreso: febrero-2002
Ubicación: Argentina
Mensajes: 906
Antigüedad: 22 años, 2 meses
Puntos: 4
Respuesta: Column count doesn't match value count at row 1

GatorV

Muchísimas gracias por encontrar el problema

Uno se siente increiblemente estúpido en estos momentos.

Un saludo

Samuel
__________________
Equívocos sin importancia
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 02:09.