Część 1 może być całkiem prosta:'a''b'
jest alternatywą dla 'a\'b'
a zatem oznacza to samo. UI jestem pewien, że w zapytaniach zostanie zwrócony poprawny ciąg, w przeciwieństwie do definicji tabeli.
W części 2 Nedret Recep udzielił prawidłowej odpowiedzi. Poza tym zastanawiam się, jak
echo "<option value='".$imgClass_row[imgClass]."'>"
może kiedykolwiek spowodować
<option value="Robin" s'="">
. Wolałbym oczekiwać
<option value='Robin's'="">
co jest wyraźnie błędne, ale można je rozwiązać za pomocą htmlspecialchars()
.
EDYCJA:Znalazłem możliwe wyjaśnienie:można tutaj winić parser HTML przeglądarki. Z
<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>
Rozumiem z Firefoksem
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin's
z opcją a
i
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin
z opcją b
. Ale to jest po parsowaniu i ponownym asemblacji i wyraźnie nie jest kodem generowanym przez PHP. A nawet wtedy, gdzie jest en axcess '
w <option value="Robin" s'="">
.