A parte 1 pode ser bem fácil:
'a''b'
é uma alternativa para 'a\'b'
e, portanto, significa o mesmo. UI tenho certeza de que nas consultas a string correta será retornada, ao contrário da definição da tabela. Para a Parte 2, Nedret Recep lhe deu a resposta correta. Além disso, eu me pergunto como
echo "<option value='".$imgClass_row[imgClass]."'>"
poderia resultar em
<option value="Robin" s'="">
. eu preferiria esperar
<option value='Robin's'="">
o que está claramente errado, mas pode ser resolvido com
htmlspecialchars()
. EDIT:Encontrei uma explicação possível:o analisador HTML do navegador pode ser o culpado aqui. Com
<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>
eu recebo com o Firefox
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin's
com a opção
a
e <option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin
com a opção
b
. Mas é depois de analisar e remontar e claramente não é o código gerado pelo PHP. E mesmo assim, onde está en axcess '
em <option value="Robin" s'="">
.