SQL mySQL-Insert fehlerhaft

Gurkenraspel

Ensign
Registriert
Juni 2007
Beiträge
137
Moin,

ich habe folgendes Problem mit einem INSERT. Und zwar wird eine Pfadangabe nicht richtig in die Datenbankgeschrieben:

Ich habe folgende Felder in der Tabelle tbilder definiert.

ID (Typ INT), GalerieID (Typ INT) und Pfad (Typ VARCHAR(255))

In meinen PHP-Skript lese ich den kompletten Pfad einer Datei aus und schreib ihn in eine Variable. Wenn ich mir die Variable ausgeben lasse, sehe ich folgendes Resultat: C:\Users\Christian\Pictures\Amerika 2006\CIMG2680.JPG.

Mach ich jetzt jedoch einen INSERT in die Tabelle werden die Backslashs "gelöscht". In der Datenbank steht folgender Pfad: C:UsersChristianPicturesAmerika 2006CIMG2680.JPG

Kann das an der Kollation liegen? Eingestellt ist bei mir latin1_swedish_ci

Ich denke es ist nur eine Einstellsache vom dem definierten Feld. Aber leider komme ich partout nicht drauf, ich hoffe ihr könnte mir weiterhelfen.

Danke!
 
maskiere mal deinen Backslash indem du ihn zweimal schreibst. Also z.B. c:\\test\\123
In C++ / C# macht man das zumindest so.
 
sieht schwer nach escapen von sonderzeichen aus! ersetze mal in der variable alle \ in \\

ausserdem empfehle ich dir mit normalen slashs zu arbeiten, also könntest du auch alle \ in / ersetzen

str_replace wird dir helfen
 
Also das mit dem Escapen habe ich bereits gemacht. Hier das Eingabeverzeichnis

PHP:
$dir = "C:\\Users\\Christian\\Pictures\\";

Und eine Zwischenausgabe der Variablen im späteren Verlauf zeigt mir ja den richtigen Code an, ergo vermute ich das es irgendwas mit der mySQL-Tabelle auf sich hat. Weil genau dazwischen gehen die Slashs verloren.

EDIT:
Also die normalen Slash "/" haben das Problem in Wohlgefallen aufgelöst :)

Danke für den Tipp, die Daten stehen nun richtig in der Tabelle!
 
Zurück
Oben