Ver Mensaje Individual
  #6 (permalink)  
Antiguo 17/04/2011, 16:26
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, 5 meses
Puntos: 2658
Respuesta: Problema Clave Primaria

Bueno, es en esencia el mismo problema... Sólo que no lo estás infieriendo.
Si COD_MATER es un VARCHAR, para que el WHERE funcione debe compararse con una cadena, y eso no es lo que estás haciendo cuando lo que hay en la variable $cod es a0001.
Tal y como la usas, la consulta, si el valor es el "a0001", quedaría:
Código MySQL:
Ver original
  1. DELETE FROM materiales WHERE COD_MATER =a0001
Donde "a0001" es interpretado como nombre de campo, por la simple razón de que comienza con una letra. Si lo que pones es "0001" lo interpreta bien porque lo interpreta como un uno (1) y hace la conversión implícita.
Lo que debe quedar en la consulta es:
Código MySQL:
Ver original
  1. DELETE FROM materiales WHERE COD_MATER ='a0001'
Esto sí compara una cadena con un VARCHAR.
¿Se entiende la diferencia?

Con lo que te comentaba en el primer post podrías haberlo inferido:
Cita:
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.
Esto se da siempre... no solamente en un INSERT.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)