Pregunta

Ya he actualizado muchos registros, pero cuando se trata de una palabra que contiene una cita, aparece este error: "ERROR: cita cerrada @ 1357" -

Sé por qué me está dando este error, simplemente no sé cómo resolverlo.

Aquí hay una muestra: ACTUALIZAR invnum SET cAccountName = replace ( cAccountName , 'JOHN'S', 'BEN')

Gracias de antemano.

¿Fue útil?

Solución

Escape comillas dentro de cadenas:

UPDATE invnum SET cAccountName = replace(cAccountName,'JOHN\'S','BEN')

Desea tener mucho cuidado con esto: no tratar esto correctamente es la fuente de SQL ataques de inyección , y es una fuente importante de problemas de seguridad.

Otros consejos

si estás usando un script para actualizar tus registros, utiliza una función de escape incorporada. para php sería mysql_real_escape_string

Prueba esto en su lugar:

UPDATE invnum SET cAccountName = replace(cAccountName,"JOHN'S","BEN")

Si necesita usar ambos tipos de comillas dentro de una cadena, entonces tendrá que escapar del tipo de comillas que usa para rodear la cadena cuando ocurran dentro de ella (de lo contrario, el intérprete de SQL pensará que la cadena termina antes de que aparezca). en realidad lo hace.

Por ejemplo:

Johns   becomes "Johns"
John's  becomes "John's" or 'John\'s'
"John"  becomes '"John"' or "\"John\""

etcétera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top