PHP: Hochkomma für MySQL/MariaDB maskieren?
bearbeitet von AugeHallo
> Der Code:
>
> ~~~
> $stichwort = $_POST["stichwort"];
> $stichwort = mysqli_real_escape_string($db, $stichwort);
> $kategorie = $_POST["kategorie"];
> $kategorie = mysqli_real_escape_string($db, $kategorie);
>
> $sql1 = "SELECT nr, stichwort FROM STICHWOERTER WHERE stichwort = '".$_POST['stichwort']."'";
> ~~~
>
> Mir wurde dabei natürlich klar, dass mysqli_real_escape_string() nur funktionieren kann, wenn ich statt $_POST['stichwort'] $stichwort verwende...
Dass du den unbehandelten POST-Wert statt des behandelten Werts in `$stichwort` benutzt hast, ist dir ja nun klar geworden. Mit …
~~~ PHP
$sql1 = "SELECT nr, stichwort FROM STICHWOERTER WHERE stichwort = '". mysqli_real_escape_string($db, $_POST['stichwort']) ."'";
~~~
… wäre das nicht passiert. Das ist natürlich nur dann sinnvoll, wenn du mit `$stichwort` nicht noch andere Dinge tust, die du hier nicht zeigst.
> und damit handelte ich mir gleich den nächsten Error ein:
>
> Fehler: Incorrect integer value: '' for column `tagebuch_stichwoerter`.`STICHWORT_KATEGORIE`.`stichwoerter_nr` at row 1
Das ist aber eine gänzlich andere Abfrage, oder? Und ja, ein Leerstring ist keine gültige Integer-Zahl.
Tschö, Auge
--
200 ist das neue 35.