PDA

Ver la Versión Completa : Grabar cadena con comilla simple y back slash


CHiCoLiTa
02-03-2004, 21:31:13
Segun un estandar del SQL, si no me falla la memoria y no es un tema meramente de la programacion, cuando quieres grabar en un campo de texto una cadena con comilla simple, has de sustituirla por 2 comillas simples, sino da error

Por lo que he visto, ese mismo error se produce con el back slash (\).

Aqui llega mi duda, ese es un error dentro de la interpretacion de las cadenas del propio PHP? Es del SQL? Existen mas caracteres con los que pueda producirse el error? Hay que reemplazar todos esos caracteres de todas las cadenas que queremos grabar, o existe una funcion predefina para el echo como mysql_real_escape_string, o esta funcion no tiene nada que ver?

Gracias por atender el chaparron de preguntas

roman
02-03-2004, 21:47:59
Recuerda que en PHP las comillas dobles tienen un significado distinto a las comillas sencillas. Ambas te sirven para especificar cadenas de caracteres pero con las comillas dobles PHP evalúa las variables contenidas (identificadores antecedidos de $) y algunos caracteres especiales como tabulaciones, retornos de carro, etc. Estos últimos debes especificarlos con el caracter de escape, \, por eemplo \t, \n, etc. Esto, igual que en mchos lenuajes que nterpretan cadenas de texto, es necesario para poder distinguir, por ejemplo, una simple "t" de un tabulador "\t". Si te es necesario incluir caracteres \ como parte de la cadena y no como caracter de escape debes escaparlos a ellos mismos: \\.

// Saludos

roman
02-03-2004, 21:53:19
Creo que te puede servir la función addslashes que, de acuerdo a la ayuda de php:


Returns a string with backslashes before characters that need to be quoted in database queries etc. These characters are single quote ('), double quote ("), backslash (\) and NUL (the NULL byte).


// Saludos

CHiCoLiTa
03-03-2004, 12:02:40
Ok, gracias.

Entonces tengo que sustituir ambas en todos los campos antes de grabar en la base de datos?