Ver Mensaje Individual
  #4 (permalink)  
Antiguo 07/10/2014, 05:52
Avatar de gnzsoloyo
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, 6 meses
Puntos: 2658
Respuesta: Como grabar literalmente un string con 0 a la izquierda?

Lo que tienes es un error de entendimiento de la diferencia entre lenguajes.
PHP no es MySQL, y MySQL no es PHP. Esto implica que MySQL no entiende variables de PHP, y en consecuencia no sabe que esa variable es un string. SQL tiene sus propias reglas que deben ser respetadas cuando se crea dinámicamnete una query.
Lo que debes verificar es siempre cuál es la sentencia SQL que finalmente recibe MySQL, porque alli descansa todo.
Si tu variable contiene "01234", pero no haces que ese valor quede como cadena de texto en MySQL, lo que recibirá será:
Código MySQL:
Ver original
  1. UPDATE t_destacats SET referencia=01234
  2. WHERE id_cat=...
Como puedes ver, el valor aparece completo, pero no como cadena de texto, ya que no está contenido entre apóstrofos. Por esa razón MySQL lo interpreta como un número que debe ser convertido implícitamente en cadena de texto, pero por empezar es un número, y al tomarlo como tal el cero a la izquierda desaparece.
Recién despues hace la conversión.
¿Se entiende?

Lo que debes hacer es crear la quyery de modo que el valor quee entre apostrofos:
Código MySQL:
Ver original
  1. UPDATE t_destacats SET referencia='01234'
  2. WHERE id_cat=...
¿Ves la diferencia?

Posdata: Lo siento pero si lees las normas del foro de BBDD que estan en la vista frontal de cada foro subforo de BBDD, verás que no se permite código de programacion de ningún tipo.
Sólo trabajamos con SQL en este foro.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 07/10/2014 a las 06:21