Foros del Web » Programando para Internet » PHP »

QUERY invalida

Estas en el tema de QUERY invalida en el foro de PHP en Foros del Web. Hola a todos, estos son los campos de mi tabla PRODUCTO en mysql: prod_id number NOT NULL Autoincrementa prod_name VCHAR(20) NOT NULL prod_fab VCHAR(20) NOT ...
  #1 (permalink)  
Antiguo 20/03/2003, 11:22
 
Fecha de Ingreso: noviembre-2002
Mensajes: 273
Antigüedad: 22 años
Puntos: 0
QUERY invalida

Hola a todos,

estos son los campos de mi tabla PRODUCTO en mysql:

prod_id number NOT NULL Autoincrementa
prod_name VCHAR(20) NOT NULL
prod_fab VCHAR(20) NOT NULL
prod_fe date NOT NULL
prod_fs date NULL

y me da un error al hacer la siguiente QUERY:

$query="INSERT INTO producto(prod_name,prod_fab,prod_fe) VALUES ('Caja','Pedro','2002-11-11')";

Que estoy haciendo mal???

Gracias y saludos,

Mickeyzgz
  #2 (permalink)  
Antiguo 20/03/2003, 11:27
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 10 meses
Puntos: 17
Me parece que falta un espacio entre producto y el primer parentesis. De todos modos, usa esto:

$query="INSERT INTO producto (prod_name,prod_fab,prod_fe) VALUES ('Caja','Pedro','2002-11-11')" or die (mysql_error());

Así verás qué error te da.
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 20/03/2003, 11:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
"un error" .. Y que errro será, será?

Esto no es correcto:
prod_id number NOT NULL Autoincrementa

Sería:
prod_id int(10) unsigned NOT NULL auto_increment

El unsigned es recomendable usarlo .. (o a caso vas a usar "id de producto" negativos? ..) .. El auto_increment es la propiedad autoincremental del campo ... no lo q pusistes ..

Y lo otro que se observa que (pese que omites el campo prod_id en tu INSERT por ser autoincremental ...) en tu tabla tienes 4 campos (aparte del prod_id) y en el INSERT usas solo 3 .. el 4º deberia ser usado .. Solo (que recuerde) puedes omitir campos en UPDATE pero no en INSERT .. o ¿no?


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 20/03/2003, 11:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Mensaje Original por Cain
Me parece que falta un espacio entre producto y el primer parentesis. De todos modos, usa esto:

$query="INSERT INTO producto (prod_name,prod_fab,prod_fe) VALUES ('Caja','Pedro','2002-11-11')" or die (mysql_error());

Así verás qué error te da.
Ojo Cain xD ..

$resultado=mysql_query($query) or die (mysql_error());

no en la variable .. ya sé q fué un despiste xD.

Un saludo,
  #5 (permalink)  
Antiguo 20/03/2003, 11:41
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 10 meses
Puntos: 17
No, puedes omitir campor en INSERTs sin problemas. MySQL no permite crear un campo NOT NULL sin valor por defecto, así que si "olvidas" un campo en un INSERT, le asigna el valor por defecto o lo deja NULL.

[añadido]
Ups! Cluster tienes razón, no me había dado cuenta de ese "pequeño detalle"
[añadido]
__________________
M a l d i t o F r i k i

Última edición por Cain; 20/03/2003 a las 11:43
  #6 (permalink)  
Antiguo 20/03/2003, 11:57
 
Fecha de Ingreso: noviembre-2002
Mensajes: 273
Antigüedad: 22 años
Puntos: 0
Este es el error

He modificado las columnas de la tabla y este es el error que me da ahora:

La QUERY es: INSERT INTO producto VALUES (alicate,jimenez,'2002-11-11',' ')

Column count doesn't match value count at row 1

Que significa esto???
  #7 (permalink)  
Antiguo 20/03/2003, 12:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Usa:

Código:
INSERT INTO producto VALUES ('',alicate,jimenez,'2002-11-11','')
El ' ' (con un espacio en un campo tipo DATE no corresponde)

Un saludo,

pd: segun Cain pordiras omitir esos dos campos q no les das valor ..
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 20/03/2003, 12:12
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 22 años, 8 meses
Puntos: 0
hola,

si id es NOT NULL no puedes omitirla, por eso ese error "Column count doesn't match value count at row 1"; y además creo que tabién deberías incluir datos para la última columna aunque sea NULL...

podrías usar la función mysql_insert_id(): php función mysql_insert_id
__________________
webdeveloper
http://www.javascripters.com.ar/
diseño web y tecnología
  #9 (permalink)  
Antiguo 20/03/2003, 12:20
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 10 meses
Puntos: 17
A ver, si no indicas los nombres de campos, DEBES PONER TODOS LOS VALORES. Si indicas los nombres de campos, pon sólo los valores que correpondad a los campos.

Ejemplo:

INSERT INTO tabla VALUES (un,valor,para,cada,campo);

INSERT INTO tabla (campo3,campo7) VALUES (valor3,valor7)

Sobretodo, ¡¡UTILIZA APÓSTROFES (') PARA LOS VALORES TEXTUALES!!!
__________________
M a l d i t o F r i k i
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 22:29.