La parte 1 podría ser bastante fácil:'a''b'
es una alternativa para 'a\'b'
y por lo tanto significa lo mismo. Estoy seguro de que en las consultas se devolverá la cadena correcta, a diferencia de la definición de la tabla.
Para la Parte 2, Nedret Recep le ha dado la respuesta correcta. Además, me pregunto cómo
echo "<option value='".$imgClass_row[imgClass]."'>"
podría resultar en
<option value="Robin" s'="">
. Prefiero esperar
<option value='Robin's'="">
lo cual es claramente incorrecto, pero se puede resolver con htmlspecialchars()
.
EDITAR:He encontrado una posible explicación:el analizador HTML del navegador podría ser el culpable aquí. con
<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>
Me sale con Firefox
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin's
con la opción a
y
<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin
con opción b
. Pero es después de analizar y volver a ensamblar y claramente no es el código generado por PHP. E incluso entonces, ¿dónde está en axcess '
en <option value="Robin" s'="">
.