Foros del Web » Programando para Internet » PHP »

Insertar "&" y "#" en Mysql via Php

Estas en el tema de Insertar "&" y "#" en Mysql via Php en el foro de PHP en Foros del Web. Tengo el siguiente insert: $ready = mysql_query("INSERT INTO ba_publicaciones (mensaje) VALUES ('$mensaje')"); Sucede que al insertar un $mensaje que tenga los caracteres "&" o "#", ...
  #1 (permalink)  
Antiguo 12/06/2012, 11:27
 
Fecha de Ingreso: julio-2008
Mensajes: 83
Antigüedad: 15 años, 9 meses
Puntos: 1
Insertar "&" y "#" en Mysql via Php

Tengo el siguiente insert:

$ready = mysql_query("INSERT INTO ba_publicaciones (mensaje) VALUES ('$mensaje')");

Sucede que al insertar un $mensaje que tenga los caracteres "&" o "#", entonces no se guarda el insert en la base de datos y $ready retorna false...

Alguna manera o forma de insertar estos dos caracteres?, intente usando:

$mensaje = mysql_real_escape_string($mensaje);

Pero nada...

Espero sus ayudas...
  #2 (permalink)  
Antiguo 12/06/2012, 11:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insertar "&" y "#" en Mysql via Php

¿Como que nada?

La función de escape es la correcta, a menos que lo hagas mal, ¿pero como vamos a saber lo que hace si no muestra nada?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 12/06/2012, 11:36
 
Fecha de Ingreso: julio-2008
Mensajes: 83
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Insertar "&" y "#" en Mysql via Php

para lo que si me sirvio mysql_real_escape_string() fue para poder insertar caracteres como las comillas simple, la barra invertida, el signo de igual, etc, pero para los caracteres: "&" y "#", no me sirve...
  #4 (permalink)  
Antiguo 12/06/2012, 11:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insertar "&" y "#" en Mysql via Php

Cita:
Iniciado por raptaparty Ver Mensaje
para lo que si me sirvio mysql_real_escape_string() fue para poder insertar caracteres como las comillas simple, la barra invertida, el signo de igual, etc, pero para los caracteres: "&" y "#", no me sirve...
¿Por que sigues de necio sin mostrar cómo lo haces?

En teoría debería funcionar, y de hecho puedo estar 100% seguro de que debe funcionar. Sin embargo puede que no te des cuenta por la forma en que lo haces, o al momento de comprobarlo.

Muestra ejemplos, no palabras.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 12/06/2012, 11:41
 
Fecha de Ingreso: julio-2008
Mensajes: 83
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Insertar "&" y "#" en Mysql via Php

Te pondre un ejemplo del codigo...

function add_publicacion($mensaje) {

$mensaje = mysql_real_escape_string($mensaje);

$ready = mysql_query("INSERT INTO ba_publicaciones (mensaje) VALUES ('$mensaje')");

$id_nuevo_publicacion = mysql_insert_id();

return $id_nuevo_publicacion;

}
  #6 (permalink)  
Antiguo 12/06/2012, 11:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insertar "&" y "#" en Mysql via Php

¿Y dices que eso no hace el INSERT?

Es completamente ilógico lo que argumentas, quien lo lea dirá que si es 100% posible de que funciona.

¿Por qué?

Pues porque así es correcto el uso de la función de escape.

Ahora, ¿como estás comprobando que efectivamente se guarda o no en la BD?

¿Estás depurando la consulta? ¿Le imprimes antes de ejecutarla? ¿Te arroja algún error que no conoces?

Intenta eso y nos dices:
Código PHP:
$ready mysql_query("INSERT INTO ba_publicaciones (mensaje) VALUES ('$mensaje')");

if ( ! 
$ready) die('ERROR: ' mysql_error()); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: insert, mysql
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 22:33.