So habe ich dieses Problem, wo ich nicht scheinen kann, um Texte in meine Datenbank einfügen, die das folgende Zeichen enthalten:' (wie zum Beispiel: Es ist). Ich hatte dieses Problem schon vorher und habe das Symbol einfach entfernt, aber jetzt brauche ich wirklich eine Lösung und nirgendwo auf dem gesamten Web- oder Stack-Overflow kann ich keine vernünftige und klare Antwort finden. DieseKann nicht Texte mit 'Symbol in Datenbank mit PHP einfügen
ist, wie meine Daten angezeigt:
HTML
<textarea name="text_from_form">
This is the kind of stuff I need and It's awesome (user input example)
</textarea>
PHP
<?php
$my_text = $_POST["text_from_form"};
$my_text_new = htmlentities($my_text);
$sql = "INSERT INTO tableName (text)
VALUES ('$my_text_new')";
?>
THE ERROR
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's awesome ')' at line 2
Vielen Dank im Voraus für die Hilfe!
Wenn Sie diese bereit parametrisierte Anweisungen verwenden sollte kein Problem sein, . Für Ihr Skript besteht die Gefahr von [** SQL Injection Attack **] (https://Stackoverflow.com/q/60174/5914775). Schau dir an, was mit [Little Bobby Tables] passiert ist (http://bobby-tables.com/). Sogar [wenn Sie Eingaben entziehen, ist es nicht sicher!] (Https://stackoverflow.com/q/5741187/5914775) Verwenden Sie [vorbereitete parametrisierte Anweisungen] (https://php.net/manual/en/mysqli.quickstart .prepared-statements.php) stattdessen. –
@TomUdding können Sie vielleicht ein Beispiel geben, was ich dann tun muss? Weil ich kein Wort von dem verstehe, was du sagst ... – CoderYordi
'htmlentities()' geht raus, nicht in. Und du solltest vorbereitete Anweisungen verwenden - welche API benutzt du, um die Datenbank abzufragen? 'mysql_ *'? 'mysqli_ *'? PDO? – Qirel