2017-06-07 23 views
0

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!

+0

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

+0

@TomUdding können Sie vielleicht ein Beispiel geben, was ich dann tun muss? Weil ich kein Wort von dem verstehe, was du sagst ... – CoderYordi

+0

'htmlentities()' geht raus, nicht in. Und du solltest vorbereitete Anweisungen verwenden - welche API benutzt du, um die Datenbank abzufragen? 'mysql_ *'? 'mysqli_ *'? PDO? – Qirel

Antwort

0

Die htmlentities() Funktion nicht entkommt Apostrophe ' in Standard-Flag (ENT_COMPACT), verwenden htmlentitees($text, ENT_QUOTES) oder Funktion mysql_real_escape_string() oder mysqli_real_escape_string() je nachdem, welche Bibliothek Sie verwenden

Verwandte Themen