Frage

Mein MySQL_REAL_ESCAPE_STRING wird ignoriert. Es bringt mich um, weil ich das Gefühl habe, dass es etwas Tines ist, das ich vermisse.

Die $ htmltext -Variable stammt von einem Tinymce -Editor, in dem der Text als HTML -IE mit Tags usw. gerendert wird.

<?php 
    /*--------GLOBAL PROCEDURES--------*/
    session_start();
    require "../scr/config-data.php.inc";
    mysql_connect($host,$username,$password) or die 
    ("Could Not Connect".mysql_error());
    mysql_select_db($db) or die ("Could Not Connect".mysql_error());

    /*-----SEVERAL SELECT/INSERT QUERIES, ALL WORKING FINE-----*/

    /*--------SPECIFIC PROCEDURES-------*/      
    if($_POST['submit']){
        //Check that POS has been chosen
        $htmlText = mysql_real_escape_string($_POST['cust']);
        if($htmlText != ""){
            mysql_query("INSERT INTO table VALUES(NULL, '$htmlText' )") or die(mysql_error());
        }else{
            $feedback = "Please Enter some text into the editor";
        }
    }

    /*--------CLOSING PROCEDURES-------*/
    mysql_close();

?>

Das Seltsame ist, dass es aus einem Skript angepasst wurde, das funktioniert und nur die Variablennamen geändert hat. Ich bekomme einen Fehler in der MySQL -Syntax. Es entkommt auch nicht dem HTML im Text, daher erhalte ich diesen Fehler:

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 'order VALUES(NULL, '

sfgafgafs

')' at line 1
War es hilfreich?

Lösung

Aus der von Ihnen angegebenen Fehlermeldung sieht es so aus, als würden Sie verwenden order als Tabellenname, der zufällig a ist Mysql Reserviertes Wort.

Versuchen Sie, es in Rückenöcken einzuschließen.

Andere Tipps

MySQL_REAL_ESCAPE_STRING wird keinem HTML entkommen. Es entkommt nur x00, n, r, , ', "und x1a.

Der Name Ihrer Tabelle sollte nicht "Order" sein, da es sich um ein SQL -Spezialwort handelt. Sie sollten es umbenennen oder sicherstellen, dass Sie es in Backticks einfügen.

Ich glaube auch, dass der Grund darauf zurückzuführen ist, dass der Tabellenname "Order" ist, da MySQL es so nimmt, wie Sie versuchen, die Bestellklausel in einer Einfügungsabfrage zu verwenden, ändern Sie den Tabellennamen in etwas anderes.

Sieht so aus, als würde Ihr Link -Kennung vermisst?

String mysql_real_escape_string (String $ unscaped_string [, Ressource $ link_identifier])

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top