Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problemas con REPLACE INTO

Estas en el tema de Problemas con REPLACE INTO en el foro de Mysql en Foros del Web. Hola Amigos!!! tengo el siguiente inconveniente estoy usando replace into para insertar registros en 2 campos uno es int PK y el otro es del ...
  #1 (permalink)  
Antiguo 15/11/2012, 08:10
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Problemas con REPLACE INTO

Hola Amigos!!!
tengo el siguiente inconveniente
estoy usando replace into para insertar registros en 2 campos uno es int PK
y el otro es del tipo text hasta aca todo perfecto incluso si el campo del tipo text no recibia ningun dato , me lo insertaba vacio , pero ahora le inclui a esta tabla un campo del tipo decimal , pero si recibe un dato vacio , mysql me da un error de que la sintaxis no es correcta , cuando imprimo la consulta me dice esto

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ',,,2)' at line 1
de que forma puedo lograr que mysql inserte las variables que estan vacias?
Saludos y muchas gracias
  #2 (permalink)  
Antiguo 15/11/2012, 08:45
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Problemas con REPLACE INTO

Hola tumbero_x:

Tienes dos opciones, la primera sería enviar la palabra NULL cuando la variable venga vacía, o listar sólo los campos que tienen valor, checa este script, observa que la tabla tiene tres campos:

Código MySQL:
Ver original
  1. mysql> CREATE TABLE tabla (id INT, campo1 VARCHAR(10), campo2 DECIMAL,
  2.   --> campo3 INT);
  3. Query OK, 0 rows affected (0.12 sec)

este sería un insert normal, cuando todos los campos tienen valor:

Código MySQL:
Ver original
  1. mysql> INSERT INTO tabla VALUES (1, 'uno', 10.26, 9);
  2. Query OK, 1 row affected, 1 warning (0.06 sec)

Ahora bien, si los campos 2 y 3 no tienen valor, tienes distintas opciones para hacer el insert.

Colocando NULL:

Código MySQL:
Ver original
  1. mysql> INSERT INTO tabla VALUES (2, 'dos', NULL, NULL);
  2. Query OK, 1 row affected (0.06 sec)

Listando sólo los campos que tienen valor:

Código MySQL:
Ver original
  1. mysql> INSERT INTO tabla (id, campo1) VALUES (3, 'tres');
  2. Query OK, 1 row affected (0.02 sec)
  3.  
  4. mysql> INSERT INTO tabla (id, campo1, campo2) VALUES (4, 'cuatro', NULL);
  5. Query OK, 1 row affected (0.03 sec)


De esta manera los campos quedan con un valor vacío.

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +------+--------+--------+--------+
  3. | id   | campo1 | campo2 | campo3 |
  4. +------+--------+--------+--------+
  5. |    1 | uno    |     10 |      9 |
  6. |    2 | dos    |   NULL |   NULL |
  7. |    3 | tres   |   NULL |   NULL |
  8. |    4 | cuatro |   NULL |   NULL |
  9. +------+--------+--------+--------+
  10. 4 rows in set (0.00 sec)

Saludos
Leo.
  #3 (permalink)  
Antiguo 15/11/2012, 08:51
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Respuesta: Problemas con REPLACE INTO

Hola Leo !!!
gracias por contestar
mi inconveniente es que no se si el usuario va a rellenar los campos html para luego hacer el insert , en conclusion esas variables las puede recibir mysql con registros o no , lo que voy a hacer es por medio de php verificar si hay contenido y despues hacer el insert.
Saludos y muchas gracias nuevamente

Etiquetas: registros, replace, sql, tabla, tipo, campos
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 11:20.