sql >> Base de Datos >  >> RDS >> Mysql

Uso de Apostrophe en el valor ENUM de MySQL que completará el cuadro combinado HTML para la búsqueda en la base de datos

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&apos;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'=""> .