• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

escape frage

Mars@Gera

Mitglied
Morschn Leute :)

ich habe eine kleines Escape-Problemschen ...
kann mir jemand sagen, wie ich diesen String entsprechend escapen musst?

Code:
INSERT INTO `testtab` (`Loc`, `subj`, `LTwhat`, `LabelNr`, `Label`,  `Phonem`, `xmin`, `xmax`) values  ('ANA','2','LT2','81','@_?\','@_?\','4.19241','4.2253')
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  '@_?\','4.19241','4.2253')' at line 1

ich schätze mal, es liegt an dieser Stelle '@_?\','@_?\' wäre nett, wenn jemand eine idee hat :)

mfg Marcel
 
Werbung:
Du muss die Backslashes escapen. Statt \ schreibst du \\.

Code:
INSERT INTO `testtab` (`Loc`, `subj`, `LTwhat`, `LabelNr`, `Label`,  `Phonem`, `xmin`, `xmax`) values  ('ANA','2','LT2','81','@_?\\','@_?\\','4.19241','4.2253')
 
Werbung:
habe es versucht in meine Frunktion einzubauen, jedoch ohne erfolg. Also das "mysql_real_escape_string()"...kann mir vllt noch jemand helfen?
Hier meine Funktion

PHP:
final public function safeIntoDatabase($time){
        $file = file(UPLOAD_DIR . $time . '.' . ENABLE_UPLOAD_TYPE);
        
        $field = array(LOC, SUBJ, LTWHAT, LABELNR, LABEL, PHONEM, XMIN, XMAX);
        $i = 0;
        $db = new mysql();
        
        foreach($file as $filenum => $con){
            //addslashes($con);
            //$values = explode('    ', $con);
            $values = preg_split('/\s+/',$con);
            
            self::cleanUpArray($values, $counter);
            
            $big_array = array_combine($field, $values);

            $sql = 'INSERT INTO `' . TESTTAB . '` (`'.implode("`, `", array_keys($big_array)).'`) VALUES (\''.implode("','", array_values($big_array)).'\')';
            echo $sql . '<br>';
            $result = $db->insert($sql);
            if($result > 0){
                $i++;
            }
        }
        return $i . ' Datens&auml;tze erfolgreich hochgeladen';
    }
}

mfg Marcel
 
Werbung:
An welcher Stelle in diesem Code hast Du da versucht? Bitte zeig den problematischen Code.
 
Morschn
PHP:
$sql = 'INSERT INTO `' . TESTTAB . '` (`'.implode("`, `", array_keys($big_array)).'`) VALUES (\''.implode("','", mysql_real_escape_string(array_values($big_array))).'\')';

mfg Marcel
 
Werbung:
Ja, die wäre eine Möglichkeit.

PHP:
' VALUES (\'' . implode("', '", array_map('mysql_real_escape_string', array_values($big_array))) . '\')'
 
Zurück
Oben