Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Usando o apóstrofo no valor MySQL ENUM que preencherá a caixa de combinação HTML para pesquisa no banco de dados


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