Cita:
Iniciado por senit He hecho una tabla en mysql, y he puesto como clave primaria un campo llamado cod_material, en tipo le he puesto varchar y en longitud 6. Yo este campo lo quiero para almacenar códigos de materiales, y cuando meto los códigos a traves de php si son números no me da problema, pero si en el codigo van letras si que me da problemas, es decir un codigo de 5 caracteres como puede ser 00001, no da problemas, pero si pongo a0001, si que me los da, porque ocurre esto, ¿Alguien me puede ayudar?
Sin ver el código me imagino que estás asignando el valor poniendo la cifra en el VALUE() del INSERT, pero no la estás encerrando entre apóstrofes... ¿no?
El tema es que cuando pones un número para ser asignado a un campo VARCHAR, lo tienes que poner entre apóstrofes para que sea una cadena:
Si lo pones sin ellos y es número, MySQL hace una conversión implícita y pone la cadena.
Pero cuando lo pones así:
MySQL asume que a0001 es un nombre de columna, pero no una cadena. En esos caso tienes que ponerlo si o si entre apóstrofes pues no existe conversión implícita para esos casos.