apostrof in variabele naar mysql

Status
Niet open voor verdere reacties.

mick93

Gebruiker
Lid geworden
31 mrt 2010
Berichten
90
Beste helpmij-ers,

Ik wil de volgende query laten lopen:

PHP:
        $sQuery = "
            INSERT INTO afleveringen (`series_id`, `seizoen`, `aflevering_nr`, `aflevering_naam`, `uitzending`) VALUES
            ('". $aRowSerie['id'] ."','". $aInfo['seizoen'] ."', '". $aInfo['aflevering_nr'] ."','". $aInfo['aflevering_naam'] ."', '". $aInfo['uitzending'] ."')";
		echo '<center>De volgende aflevering is toegevoegd aan de database: S'.$aInfo['seizoen'].'E'.$aInfo['aflevering_nr'].' - '.$aInfo['aflevering_naam'].'</center>';

Dit gaat goed voor iedere aflevering, behalve afleveringen waarin een apostrof staat.
Het gaat dus goed voor de afleveringen:
S01E01 - Apple
S01E02 - Samsung
S01E03 - Nokia

maar niet goed voor aflevering:
S01E04 - Apple's Revenge

Hoe kan ik dit het beste oplossen?

Zelf op internet speuren zegt mij dat ik dan een dubbele apostrof moet gebruiken, dus dat de aflevering dan zou moeten zijn: Apple''s Revenge
Echter, de aflevering namen typ ik zelf niet in. Dit is een variabele, namelijk: $aInfo['aflevering_naam'].

Ik hoor graag wat volgens jullie het antwoord is; ik kom er niet uit.

Alvast bedankt!

Groetjes,

Mick
 
Gebruik de PHP addslashes functie:
string addslashes ( string $str )

Dit plaatst een escape character "\" voor het teken dat "escaped" moet worden:
$naam = "S01E04 - Apple's Revenge";

Na: addslashes($naam);

Is de waarde dan: "S01E04 - Apple\'s Revenge"
 
Laatst bewerkt:
Verplicht je jezelf dan niet om bij het opvragen van de data weer stripslashes er over heen te moeten gooien?

Het lijkt mij beter om prepared statements te gebruiken, dan worden zulke dingen voor je geregeld: http://php.net/manual/en/pdo.prepare.php
 
Excuseer, ik ben er een tijdje uitgeweest.
@TheDevil: Dat lijkt mij ook beter. Ik wil niet dat overal dan slash tekens komen te staan.
Hoe realiseer ik dit eigenlijk in bovenstaand voorbeeld? Want dat krijg ik nog niet helemaal rond.
 
Die \ tekens komen er niet in. Die zorgen er alleen voor dat het ' teken op dat moment als onderdeel van de tekst wordt behandeld in plaats van als speciaal teken.
 
Laatst bewerkt:
Gebruik prepared statements, of gebruik mysqli_real_escape_string()

Met het gebruik van addslashes() schiet je je zelf alleen maar in je voet.
 
Omdat je met addslashes mogelijk je string vernachelt. Dat het prima werkt, wil niet zeggen dat de oplossing goed is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan