Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-03-2004
CHiCoLiTa CHiCoLiTa is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 21
CHiCoLiTa Va por buen camino
Grabar cadena con comilla simple y back slash

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

Última edición por CHiCoLiTa fecha: 02-03-2004 a las 21:34:01.
Responder Con Cita
  #2  
Antiguo 02-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #3  
Antiguo 02-03-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Creo que te puede servir la función addslashes que, de acuerdo a la ayuda de php:

Cita:
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
Responder Con Cita
  #4  
Antiguo 03-03-2004
CHiCoLiTa CHiCoLiTa is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 21
CHiCoLiTa Va por buen camino
Ok, gracias.

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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 08:34:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi