Del 1 kan være ret let:'a''b'
er et alternativ til 'a\'b'
og betyder altså det samme. UI er sikker på, at i forespørgsler vil den korrekte streng blive returneret i modsætning til tabeldefinitionen.
Til del 2 har Nedret Recep givet dig det rigtige svar. Desuden undrer jeg mig over hvordan
echo "<option value='".$imgClass_row[imgClass]."'>"
nogensinde kunne resultere i
<option value="Robin" s'="">
. Jeg ville hellere forvente
<option value='Robin's'="">
hvilket tydeligvis er forkert, men kan løses med htmlspecialchars()
.
EDIT:Jeg har fundet en mulig forklaring:HTML-parseren af browseren kan være skyld her. Med
<select id="s" onchange="alert(document.getElementById('s').innerHTML + ' value:' + document.getElementById('s').value)">
<option value='Robin's'>a</option>
<option value='Robin's'>b</option>
</select>
Jeg bruger Firefox
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin's
med mulighed a
og
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin
med mulighed b
. Men det er efter parsing og genmontering og er tydeligvis ikke den PHP-genererede kode. Og selv da, hvor er en axcess '
i <option value="Robin" s'="">
.