Discussion:
Problemas con los espacios en campos de MySQL llamando desde PHP
(demasiado antiguo para responder)
Claxh
2004-09-30 10:35:59 UTC
Permalink
Hola a todos,

La verdad es que el título del mensaje es un poco raro. No voy a dar muchos
detalles para no hacer muy largo el post, luego si alguien sabe de lo que
hablo le explicaré lo que haga falta.

La cosa es que desde un formulario con PHP meto texto en un campo VARCHAR
de una bd MySQL pasandolo antes por un filtro para evitar las comillas ".
Se me almacena bien y también lo recupero bien con PHP. Pero... al hacer
busquedas en la web con PHP no me reconoce los espacios en blanco. Es
decir, que si:

campo = NOMBRE

dato = Perico de los Palotes

Cuando hago una busqueda en la base de datos desde un formulario con PHP y
meto en el formulario "Perico de los Palotes" a pesar de que sí que existe
en la base de datos no me lo encuentra. Me da la sensación de que ese
filtro me hace algo raro con los espacios, me los tranforma en algo o yo
que sé. El filtro es simplemente usar addslashes($NOMBRE).

Alguien le ha pasado algo parecido y sabe que es lo que está ocurriendo.

Saludos y gracias
Oscar Garcia
2004-09-30 18:56:02 UTC
Permalink
Post by Claxh
Cuando hago una busqueda en la base de datos desde un formulario con PHP y
meto en el formulario "Perico de los Palotes" a pesar de que sí que existe
en la base de datos no me lo encuentra. Me da la sensación de que ese
filtro me hace algo raro con los espacios, me los tranforma en algo o yo
que sé. El filtro es simplemente usar addslashes($NOMBRE).
¿Podrías indicar la cláusula SELECT exacta que usas? Quizá no estés
estre comillando correctamente la cadena en la búsqueda SQL.

Un saludo.
--
Óscar Javier García Baudet
LinaresDigital
http://redstar.linaresdigital.com/
Ignacio Manzano Arribas
2004-10-01 08:24:11 UTC
Permalink
Es totalmente correcto usar addslashes para introducir datos en la base de
datos, lo único que te hace es poner los caráteres de escape necesarios para
que no haya conflictos en la cadena sql que le mandas a mysql.

Por ejemplo la asignacion
$dato="me llaman 'pepito'" ;
podría dar conflictos en un sql:
$SQL="select * from tabla where campo='".$dato."'";
ya que la cadena que le llega a mysql es
select * from tabla where campo='me llaman 'pepito''
como puedes ver se produce un desajuste en las comillas
con addslashes
$dato=addslashes("me llaman 'pepito'");
resultaría
select * from tabla where campo'me llaman \'pepito\''

Lo cual es totalmente correcto.

Por lo tanto el problema debe radicar en otro lugar.

Espero que te sirva, un saludo
Iñaky
Post by Claxh
Hola a todos,
La verdad es que el título del mensaje es un poco raro. No voy a dar muchos
detalles para no hacer muy largo el post, luego si alguien sabe de lo que
hablo le explicaré lo que haga falta.
La cosa es que desde un formulario con PHP meto texto en un campo VARCHAR
de una bd MySQL pasandolo antes por un filtro para evitar las comillas ".
Se me almacena bien y también lo recupero bien con PHP. Pero... al hacer
busquedas en la web con PHP no me reconoce los espacios en blanco. Es
campo = NOMBRE
dato = Perico de los Palotes
Cuando hago una busqueda en la base de datos desde un formulario con PHP y
meto en el formulario "Perico de los Palotes" a pesar de que sí que existe
en la base de datos no me lo encuentra. Me da la sensación de que ese
filtro me hace algo raro con los espacios, me los tranforma en algo o yo
que sé. El filtro es simplemente usar addslashes($NOMBRE).
Alguien le ha pasado algo parecido y sabe que es lo que está ocurriendo.
Saludos y gracias
Continúe leyendo en narkive:
Resultados de búsqueda para 'Problemas con los espacios en campos de MySQL llamando desde PHP' (Preguntas y respuestas)
5
respuestas
¿Como hacer un cotizador con php y mysql?
iniciado 2013-12-19 11:05:51 UTC
diseño y programación
Loading...