Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzo di Apostrophe nel valore ENUM di MySQL che popolerà la casella combinata HTML per la ricerca nel database

La parte 1 potrebbe essere abbastanza semplice:'a''b' è un'alternativa per 'a\'b' e quindi significa lo stesso. L'interfaccia utente è sicura che nelle query verrà restituita la stringa corretta, al contrario della definizione della tabella.

Per la parte 2, Nedret Recep ti ha dato la risposta corretta. Inoltre, mi chiedo come

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

potrebbe mai risultare in

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

. Preferirei aspettarmi

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

che è chiaramente sbagliato, ma può essere risolto con htmlspecialchars() .

EDIT:ho trovato una possibile spiegazione:il parser HTML del browser potrebbe essere da biasimare qui. 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>

Ottengo con Firefox

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

con l'opzione a e

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

con l'opzione b . Ma è dopo l'analisi e il rimontaggio e chiaramente non è il codice generato da PHP. E anche allora, dov'è en axcess ' in <option value="Robin" s'=""> .