Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Verwendung von Apostroph im MySQL-ENUM-Wert, der das HTML-Kombinationsfeld für die Datenbanksuche füllt

Teil 1 könnte ganz einfach sein:'a''b' ist eine Alternative für 'a\'b' und bedeutet damit dasselbe. UI bin mir sicher, dass bei Abfragen der richtige String zurückgegeben wird, im Gegensatz zur Tabellendefinition.

Für Teil 2 hat Nedret Recep Ihnen die richtige Antwort gegeben. Außerdem frage ich mich, wie

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

jemals zu

führen könnte
<option value="Robin" s'="">

. Ich würde eher erwarten

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

was eindeutig falsch ist, aber mit htmlspecialchars() gelöst werden kann .

EDIT:Ich habe eine mögliche Erklärung gefunden:Hier könnte der HTML-Parser des Browsers schuld sein. Mit

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

bekomme ich mit Firefox

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

mit Option a und

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

mit Option b . Aber es ist nach dem Parsen und erneuten Zusammensetzen und ist eindeutig nicht der von PHP generierte Code. Und selbst dann, wo ist en axcess ' in <option value="Robin" s'=""> .