Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation de l'apostrophe dans la valeur MySQL ENUM qui remplira la zone de liste déroulante HTML pour la recherche dans la base de données

La partie 1 pourrait être assez simple :'a''b' est une alternative pour 'a\'b' et signifie donc la même chose. L'interface utilisateur est sûre que dans les requêtes, la chaîne correcte sera renvoyée, par opposition à la définition de la table.

Pour la partie 2, Nedret Recep vous a donné la bonne réponse. De plus, je me demande comment

echo "<option value='".$imgClass_row[imgClass]."'>"

pourrait jamais entraîner

<option value="Robin" s'="">

. Je m'attendrais plutôt

<option value='Robin's'="">

ce qui est clairement faux, mais peut être résolu avec htmlspecialchars() .

EDIT :j'ai trouvé une explication possible :l'analyseur HTML du navigateur pourrait être à blâmer ici. Avec

<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>

Je reçois avec Firefox

<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin's

avec option a et

<option value="Robin's">a</option>
<option value="Robin" s="">b</option>
value:Robin

avec option b . Mais c'est après l'analyse et le réassemblage et ce n'est clairement pas le code généré par PHP. Et même alors, où est en axcess ' dans <option value="Robin" s'=""> .