Foros del Web » Programando para Internet » PHP »

Problema al Insertar registros a la BD

Estas en el tema de Problema al Insertar registros a la BD en el foro de PHP en Foros del Web. Hola Maestros: objetivo: insertar datos desde un archivo a mi base de datos. problema: el problema es que con unos campos si lo hace los ...
  #1 (permalink)  
Antiguo 09/05/2003, 12:54
Avatar de payo22  
Fecha de Ingreso: noviembre-2002
Ubicación: México
Mensajes: 839
Antigüedad: 22 años
Puntos: 1
Problema al Insertar registros a la BD

Hola Maestros:

objetivo:

insertar datos desde un archivo a mi base de datos.

problema:

el problema es que con unos campos si lo hace los inserta sin ningun problema, el problema viene cuando el tema de un libro viene con un spostrofo o comilla simple es decir,

valores en archivo

Thermodynamics //este si lo mete
Canadian Anesthesiologists' Society //estos no me los
Women's Studies //inserta

estos valores va al campo title de mi base de datos .


como le puedo hacer para que meta este registro a la base de datos tal y como esta en mi archivo.

no se si tenga que manejar el \' para quitarle el significado de la comilla simple para php o que debo hacer?

gracias por su apoyo.

ya lo tengo gracias
  #2 (permalink)  
Antiguo 09/05/2003, 13:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
mm Puedes usar a la hora de guardar tus datos en la BD (sobre todo en esos campos que pueden contener ese típo de caracter):

mysql_escape_string()
http://www.php.net/manual/en/functio...ape-string.php

(fijate en el própio ejemplo q trae la función ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 09/05/2003, 13:53
 
Fecha de Ingreso: mayo-2003
Mensajes: 6
Antigüedad: 21 años, 6 meses
Puntos: 0
digamos que últimamente he tenido problemas similares a la hora de insertar comillitas en la base de datos.

Si utilizas addslashes() // http://www.php.net/manual/es/function.addslashes.php // añadirás la barra invertida a las comillas tanto simples como dobles a la hora de insertar el dato en la base de datos

A la hora de mostrarlo puedes usar stripslashes() // http://www.php.net/manual/es/function.stripslashes.php // para eliminar esas barras invertidas en la muestra.

Espero que te sirva de ayuda
  #4 (permalink)  
Antiguo 09/05/2003, 14:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Uses la función que uses .. asegurate de ver como trabaja tu servidor con el magic_quote_gpc() y runtime (por defecto las gpc están a ON .. por lo tanto suele ser necesario sólo el stripslahes() .. pero en tu caso parece que no es así ) ...

Sobre todo si aplicas un addslashes() y empiezas a ver duplicados los // ....

Incluso tienes funciones para verificar su estado y en consecuencia aplicar un addslashes() o no (y siempre sólo hacer el stripslashes() ..)

Me refiero a:
get_magic_quotes_gpc()

Un ejemplo de uso completo:

Código PHP:
function pon_slash_si_hace_falta($variable) {
 if (
get_magic_quotes_gpc()==1) {
   return 
$variable;
 } else {
   return 
addSlashes($variable);
 }

Y su uso .. como toda función:

Código PHP:
$variable=pon_slash_si_hace_falta($variable); 
Así te aseguras que donde corras tu aplicación va a funcionar independientemente de la configuración (pues ya se toma en cuenta viendo el estado de dicha directiva ..)

------

OPS! .. ahora me doy cuenta que dices que los datos los tienes en un archivo .. mm entonces la función que puse sobre get_magic_quotes .. sería _runtime no _gpc .. Bueno .. ahí queda el ejemplo para otros casos como el de envio de variables dese un formulario (GET o POST) y cookies ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 09/05/2003 a las 14:08
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 21:30.