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

Mysql no me guarda las cadenas

Estas en el tema de Mysql no me guarda las cadenas en el foro de Mysql en Foros del Web. Hola amigos, tengo un problemita con una consulta al guardar cadenas o campos del tipo varchar(120) por ejemplo, en un INSERT en la base de ...
  #1 (permalink)  
Antiguo 13/07/2010, 11:30
 
Fecha de Ingreso: diciembre-2006
Mensajes: 2
Antigüedad: 17 años, 4 meses
Puntos: 0
Mysql no me guarda las cadenas

Hola amigos, tengo un problemita con una consulta al guardar cadenas o campos del tipo varchar(120) por ejemplo, en un INSERT en la base de datos mysql, le mando por ejemplo la siguiente instruccion:

INSERT INTO rutas(idruta,ruta) values(1,'C:\')
y me manda error he encontrado
que dando esta instruccion modificada de la siguiente manera no me lo manda

INSERT INTO rutas(idruta,ruta) values(1,'C:')

quedo en espera para saber por que me manda ese error con las "\" o si le tengo que mover algo al servidor mysql

gracias!!!
  #2 (permalink)  
Antiguo 13/07/2010, 11:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Mysql no me guarda las cadenas

El caracter "\" es el caracter escape para las cadenas de texto.
Te recomiendo leer el manual de referencia para estas dudas. Allí se explica cómo se usa ese caracter: 9.1.1. Cadenas de caracteres
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/07/2010, 12:53
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Mysql no me guarda las cadenas

Cita:
quedo en espera para saber por que me manda ese error con las "\" o si le tengo que mover algo al servidor mysql
Si quieres, también puedes cambiar el servidor para que no te interfieran estos caracteres.

Código MySQL:
Ver original
  1. mysql> SET SQL_MODE='NO_BACKSLASH_ESCAPES';
  2. Query OK, 0 rows affected (0.00 sec)
  3.  
  4. mysql> INSERT INTO prueba_backslash VALUES('c:\');
  5. Query OK, 1 row affected (0.00 sec)
  6.  
  7. mysql> SELECT *FROM prueba_backslash;
  8. +------+
  9. | ruta |
  10. +------+
  11. | c:\ |
  12. +------+
  13. 1 row in set (0.00 sec)
  14.  
  15. mysql>

Sin embargo, me parece mejor tratar el problema como lo hacen en el link que te da gnzsoloyo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 13/07/2010, 13:36
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años
Puntos: 2
Respuesta: Mysql no me guarda las cadenas

Huesos52

Una duda y como seria la instrucción para revertir SET SQL_MODE='NO_BACKSLASH_ESCAPES';???
Disculpa la intromisión mchanona, tengo un problema bien parecido y se ocurre que con esto lo podría solucionar.

Tengo una aplicación que hace un Insert a una tabla y que en uno de sus campos ingresa (o deviera ingresar) lo siguiente " \\grabador\CCRecordings$\grabador\Volume0000128", pero en la tabla se escribe solo lo siguiente: " \grabadorCCRecordings$grabadorVolume0000128"
Como veran se "come" los backslash, y ya no funciona la ruta guardada. Se ha ocurrido sacar el backslash antes del insert y volverlo a habilitar al finalizar

desde ya gracias
  #5 (permalink)  
Antiguo 13/07/2010, 14:00
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Mysql no me guarda las cadenas

Chelodelsur

Con
Código MySQL:
Ver original
  1. SELECT @@SESSION.SQL_MODE;
Miras el parametro que valor tiene en la sesión.

Con
Código MySQL:
Ver original
  1. SELECT @@GLOBAL.SQL_MODE;
Miras el parametro que valor tiene en la configuración global

Como revertirlo? No lo se. Dejame lo consulto y te lo hago saber.

Mira de donde lo saqué.
http://dev.mysql.com/doc/refman/5.0/...-sql-mode.html

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #6 (permalink)  
Antiguo 13/07/2010, 14:09
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Mysql no me guarda las cadenas

Confirmado y probado.

En my.ini (Windows) o my.cnf(unix) adicionas al parametro sql-mode separado por una coma las opciones que requieras.

Si no lo necesitas, simplemente lo quitas.

para hacerlo automatico, debes hacerlo con cambios en las sesiones unicamente.

saludos chelo
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 13/07/2010, 14:20
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años
Puntos: 2
Respuesta: Mysql no me guarda las cadenas

Ok Muchas gracias, lo revisaré

Saludos
  #8 (permalink)  
Antiguo 14/07/2010, 12:43
 
Fecha de Ingreso: diciembre-2006
Mensajes: 2
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Mysql no me guarda las cadenas

Perfecto era lo que necesitaba, muchas gracias por sus respuestas.

Etiquetas: Ninguno
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 03:05.