Don't Escape!

Radhad

Erfahrenes Mitglied
Hi zusammen,

ich habe ein Script geschriben, welches vom User geschriebene SQL SELECT & DESCRIBE Statements ausführen kann. Allerdings werden die ' durch \ escaped. Wie kann ich diese ohne Probleme aus dem String entfernen?


Gruß Radhad
 
Wo kommen die Werte denn her? Falls sie über ein Formular übergeben wurden, solltest du die derzeitige Einstellung der so genannten Magic Quotes prüfen und gegebenenfalls ändern.
 
PHP:
magic_quotes_gpc On On 
magic_quotes_runtime Off Off 
magic_quotes_sybase Off Off
So ist die Konfiguration.

Ich habe stripslashes() an folgender Stelle verwendet:
PHP:
$sql = stripslashes($_POST['$sql']);
und bekomme immer noch denselben Fehler:
Code:
SELECT COUNT(be.bestelldatum) AS Anzahl, k.firma, k.kontaktperson
FROM bestellungen be
JOIN kunden k
ON (be.kundencode = k.kundencode)
WHERE be.bestelldatum LIKE '1997%'
GROUP BY be.kundencode
ORDER BY anzahl DESC;
PHP:
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 '\'1997%\' GROUP BY be.kundencode ORDER BY anzahl DESC LIMIT 1' at line 1
Die SELECT-Anweisung weißt kein \ auf, trotzdem ist im String, den die Funktion benutzt später das Escape-Zeichen \ vorhanden. Muss ich stripslashes später nochmals verwenden?
 
Ich hab den "Bug" gefunden, hatte in der Funktion mysql_real_escape_string() verwendet, die dann weiterhin das ' Zeichen escaped hat. Danke für die Hilfe :)


Gruß Radhad
 
Zurück