Avatar billede gbjensen65 Nybegynder
21. januar 2014 - 07:24 Der er 2 kommentarer og
1 løsning

Problem med ' eller single quote og LIKE i MySql select

Dette er faktisk ikke et spørgsmål, men mere info som jeg tænkte ville være nyttigt for andre.

Jeg havde et problem med en MySql select som her:

select * FROM kro WHERE navn LIKE '%Peter\'s Inn'
ikke får nogen hits, men
select * FROM kro WHERE navn LIKE '%\'s Inn'
finder Peter's Inn
Så snart der er bare et bogstav foran \' giver det nul hits
Men der er en work-around:
select * FROM kro WHERE navn LIKE '%Peter%\'s Inn'
Den finder Peter's Inn

Min php kode ser således ud:
$seeqit=addslashes($seeqfast);  // det er indholdet i $seekfast der skal søges efter
$like = "%".str_replace("\'","%\'",$seeqit)."%"; // indsæt et ekstra % forand \'
$sql="select * from kro where navn LIKE '$like'"; // mySql kommando

Håber at det kan hjælpe en eller anden!
Mvh. Lars
Avatar billede gbjensen65 Nybegynder
21. januar 2014 - 07:25 #1
Problem er som sagt løst!
Avatar billede keysersoze Guru
21. januar 2014 - 07:51 #2
Du bør benytte prepared statements - på den måde undgår du også sql injections.
Avatar billede repox Seniormester
22. januar 2014 - 13:43 #3
Og så kan man undgå hacks som ovenstående.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester