[php] addslashes probleempje met search

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een raar probleem, ik ben voor me forum een search pagina aan het proggen. Probleem is het zoeken op een topic met een ' in de titel.


Ik maak bv een topic aan genaamd test's. In de database komt er dan test\'s te staan, want er gaat standaard addslashes overheen. Nu lijkt het me logisch dat als je zoekt op een topic, dat je de zoek string dan ook addslashes meegeeft, zodat hij niet naar test's zoekt, maar naar test\'s.

Probleem is alleen dat hij niets vind als ik addslashes mee geef. Verder werkt de search perfect, dus kan niet aan me query liggen ofzo. maar zodra er een ' in de zoekterm staat, vind hij dus niets. Wat doe ik fout :?

Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Je moet juist zorgen dat die hele slash niet voor die ' komt te staan in je database. Het idee van addslashes is dat de ' escaped wordt, niet dat er \' in de database komt te staan. Dus je probleem ligt al bij het inserten, niet bij het zoeken.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

Verwijderd

Waarom denk jij dat er in de database ook \' komt te staan? Escapen is niet een manier om een escape character én een bijzonder teken op te slaan, het is een manier om een bijzonder teken letterlijk in een string te zetten, omdat dat anders niet mogelijk is.

INSERT INTO table VALUES ( 'test\'s' )

Nu komt er gewoon test's in de database te staan. Wel moet je in de query om hiernaar te zoeken natuurlijk ook in die string de quote escapen. Dat heeft _niets_ te maken met de manier waarop test's in de database is gekomen, maar het heeft er alles mee te maken dat de database moeite heeft met 'test's', logisch ook.