Question

Mon mysql_real_escape_string est ignorée. Il me tue, parce que je me sens comme elle est quelque chose de petit que je suis absent.

La variable htmlText $ provient d'un éditeur de TinyMCE où le texte est rendu en HTML avec des balises à savoir etc.

<?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();

?>

La chose étrange est, il a été adapté à partir d'un script qui fonctionne, en changeant seulement les noms de variables. Je reçois une erreur dans la syntaxe MySQL. Il est également ne pas échapper le code HTML dans le texte si je reçois cette erreur:

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
Était-ce utile?

La solution

Dans le message d'erreur que vous avez données il semble que vous utilisez order comme le nom de la table qui se trouve être un MySQL mot réservé .

Essayez l'enfermer dans les tiques arrière.

Autres conseils

mysql_real_escape_string n'échappera pas tout html. Il ne échappe \ x00 \ n, \ r, \, »," et \ X1A.

Le nom de votre tableau ne doit pas être « ordre », car il est un mot spécial SQL. Vous devez renommer ou assurez-vous que vous le mettre dans les apostrophes inverses.

Je crois aussi que la raison est due au nom de la table étant « d'ordre », comme mysql il faut que vous essayez d'utiliser la clause de commande dans une requête d'insertion, changer le nom de la table à autre chose ..

On dirait que votre manque l'identifiant lien?

string mysql_real_escape_string (string unescaped_string de $ [, resource $ link_identifier])

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top