Dat ligt aan wat er precies gedaan wordt. Als je bijvoorbeeld HTML code echoed in php kan je dat zo doen:
<?php
echo '<div id="iets"></div>';
?>
Maar het id nu uit een variabele komt dan moet je die uit de string halen en daar krijg je extra quotes erbij:
<?php
echo '<div id="'.$eenVariabele.'"></div>';
?>
Hetzelfde met SQL. Daar staan de waardes binnen enkele quotes en krijg je dus dit (de string quotes in php worden nu dubbele om niet te hoeven escapen):
<?php
$query = "SELECT id FROM tabelName WHERE name = 'iets'";
?>
En als hier ook weer het iets uit een variabele komt dan kan je die op de volgende manier invoegen:
<?php
$query = "SELECT id FROM tabelName WHERE name = '".$eenVariabele."'";
?>
Nu krijg je op het eind dus drie quotes (dubbel, enkel, dubbel) maar het lijken er wel vijf...
"SELECT (kolom)naam FROM (tabel)berichten WHERE naam LIKE %S%"
Dit is toch wat er normaal moet staan nml "om de string te openen en"om de string te sluiten.
In dit geval toch dubbele quotes?
@Oscar
Het principe is heel eenvoudig, quotes komen altijd met z'n tweeen. Een openings quote en een sluitings quote. Tel in elk voorbeeld dat ik gaf de quotes maar, er zijn altijd een even aantal quotes. Een even aantal enkele en een even aantal dubbele.
Als je dus ergens een string moet maken en je plaatst een quote (enkele of dubbele), dan moet je je altijd bedenken dat je die ook moet afsluiten. Het beste is om die afsluiting direct te zetten, dat vereenvoudigd het voor je.
Moet je vervolgens die string splitsen, dan doe je dat ook altijd direct met twee quotes. Een om het eerste deel te sluiten, de andere om het tweede deel te openen. En uiteraard moet je altijd een enkele quote met een enkele quote afsluiten en een dubbele met een dubbele.
Voorbeeldje:
<?php
echo 'Dit is een gewone string';
?>
Quote aan het begin, quote aan het eind. Nu wil ik echter hier HTML in plaatsen om het bijvoeglijk naamwoord een kleur of zo te geven via een span met een class:
<?php
echo 'Dit is een <span class="kleur">gewone</span> string';
?>
Ook weer twee quotes in die HTML.
Volgende stap, het bijvoeglijk naamwoord is een variabele, dus ik moet de string onderbreken om er een php variabele in te voegen. Ik moet de string dus sluiten (met de enkele quote en daarna het tweede deel weer openen:
<?php
echo 'Dit is een <span class="kleur">'.$eenVariabele.'</span> string';
?>
En zo verder en zo verder.
Ik heb die tutorial al 5 keer gelezen en kom tot het volgende besluit:
dubbele quotes voor html
enkele quotes voor php
Maar mijn vraag is de volgende:
mysql_query("insert into berichten(naam, bericht, tijd)values ('".mysql_real_escape_string enz...
Vanwaar komt '(een)"(twee)quotes die dan verder ook gebruikt worden om af te sluiten.
dat vind ik nergens terug en dat is mijn probleem