Foros del Web » Programando para Internet » PHP »

Comillas simples y dobles.

Estas en el tema de Comillas simples y dobles. en el foro de PHP en Foros del Web. Hola, Tengo un problema en la inserción de datos alfanumericos en mi base de datos. El problema está en que los nombres de los productos, ...
  #1 (permalink)  
Antiguo 06/09/2012, 04:55
 
Fecha de Ingreso: mayo-2012
Ubicación: Valencia
Mensajes: 67
Antigüedad: 12 años, 5 meses
Puntos: 0
Pregunta Comillas simples y dobles.

Hola,

Tengo un problema en la inserción de datos alfanumericos en mi base de datos.
El problema está en que los nombres de los productos, algunos contienen comillas simples (') y otros comillas dobles (").

Mi función PHP hace esto en general:
Código PHP:
$consulta="INSERT....VALUES('nombre_con_comillas_simples', 'nombre_con_comillas_dobles')";
$registros=mysql_query($consulta$conexionbd); 
Entonces no puedo usar como delimitadores las simples o las dobles porque falla en un momento u otro.

No puedo ir modificando las comillas de la consulta cada vez que quiera meter una comilla del otro tipo porque estaría modificandola a diario.

¿Existe otro carácter que pueda utilizar en vez de estos 2?
¿Que otra cosa puedo hacer?

Gracias!
  #2 (permalink)  
Antiguo 06/09/2012, 05:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Comillas simples y dobles.

Revisa esto: http://www.forosdelweb.com/f18/como-...6/#post3856999
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 07/09/2012, 02:11
 
Fecha de Ingreso: mayo-2012
Ubicación: Valencia
Mensajes: 67
Antigüedad: 12 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Comillas simples y dobles.

Gracias,

Pero lo he resuelto poniendo tan solo la función addslashes en el insert al campo que me daba problemas:

Código PHP:
INSERT......VALUES('addslashes($nombre)', .....) 
  #4 (permalink)  
Antiguo 07/09/2012, 02:23
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Comillas simples y dobles.

Las soluciones fáciles no siempre son lo más adecuado:

Cita:
Iniciado por PHP->addslashes()
string addslashes ( string $str )

Devuelve una cadena con barras invertidas delante de los carácteres que necesitan escaparse en situaciones como consultas de bases de datos, etc. Los carácteres que se escapan son la comilla simple ('), comilla doble ("), barra invertida (\) y NUL (el byte NULL).

Un ejemplo de uso de la función addslashes() es cuando se introduce información en una base de datos. Por ejemplo, para insertar el nombre O'reilly en una base de datos, debe escaparse previamente. Es muy recomendado usar la función de escape de la misma Bade de Datos (DBMS) (por ejemplo mysqli_real_escape_string() para MySQL o pg_escape_string() para PostgreSQL), pero si la Base de Datos (DBMS) que se está usando no tiene una función de escape y usa la barra invertida \ para escapar caracteres especiales, puede utilizar esta función. Esto sólo será para obtener los datos en la base de datos, La barra invertida \ extra no será insertada. Si la directiva PHP magic_quotes_sybase tiene el valor on entonces las comillas simples de tipo 'se escapan añadiendo otra comilla simple adelante. '.

http://www.php.net/addslashes
Como puedes ver, addslashes() "puede ser útil" cuando no existe una función de escape para el motor de base de datos utilizado, en tu caso, sí existe esa función y es la que debes usar.

Te dejo algunas notas sobre seguridad y consejos para usar mysqli o PDO en lugar de mysql: http://www.forosdelweb.com/f18/aport...8/#post4265377
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: comillas, dobles, simples
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:30.