Část 1 může být docela snadná:'a''b'
je alternativou pro 'a\'b'
a tedy znamená totéž. Uživatelské rozhraní si je jisté, že v dotazech bude vrácen správný řetězec, na rozdíl od definice tabulky.
Pro část 2 vám Nedret Recep dala správnou odpověď. Navíc by mě zajímalo jak
echo "<option value='".$imgClass_row[imgClass]."'>"
může někdy vést k
<option value="Robin" s'="">
. Spíš bych očekával
<option value='Robin's'="">
což je zjevně špatně, ale lze to vyřešit pomocí htmlspecialchars()
.
EDIT:Našel jsem možné vysvětlení:zde může být viněn analyzátor HTML prohlížeče. S
<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>
Dostávám Firefox
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin's
s možností a
a
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin
s možností b
. Ale je to po analýze a opětovném sestavení a zjevně to není kód generovaný PHP. A dokonce i potom, kde je en axcess '
v <option value="Robin" s'="">
.