PHP4 und SQL-Statement INSERT

Hallo

Ich habe ein kleines SQL-Problem im Zusammenhang mit PHP4 und einem ODBC-Treiber.

$sql = „INSERT INTO Occasion (Typ, Jahrgang, KM, Farbe, Ausstattung, Bemerkungen, Preis, Sprachen, Kontakt, Email)“;
$sql .= „VALUES (’$Typ’, ‚$Jahrgang‘, ‚$KM‘, ‚$Farbe‘, ‚$Ausstattung‘, ‚$Bemerkungen‘, ‚$Preis‘, ‚$Sprachen‘, ‚$Kontakt‘, ‚$Email‘)“;

Die Daten werden durch die User per Formular erfasst. Die Datenbank arbeitet auch bestens. Das Problem ist wenn jemand einen Eintrag wie z.B. DM 1’000.- macht. Durch das Apostroph resp. das Hochkomma ergibt sich ein Fehler. Eventl. führen noch andere Sonderzeichen zum gleichen Resultat. Wie kann ich dieses Problem vermeiden?

Besten Dank im voraus.
Borsi

Hallo!
Es gibt die Funktion addslashes. Sie fügt vor Sonderzeichen, die bei Datenbankabfragen eine Bedeutung haben ein Slash ein, damit sollte es funktionieren.

Syntax: $neuKM=addslashes($KM);

Gruß, Ingmar

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo ingmar

Besten Dank für Deinen Beitrag.
Leider ist dass noch nicht die Lösung, jetzt habe ich einfach noch ein \ zusätzlich.

Gruss
Borsi

Besten Dank für Deinen Beitrag.
Leider ist dass noch nicht die Lösung, jetzt habe ich einfach
noch ein \ zusätzlich.

Dann hilft es vielleicht in Variablen einzelne Apostrophs durch zwei Apostrophs ersetzt ?
Kommt darauf an, was der betreffende ODBC als syntaktisch korrekte Escape-Sequenz innerhalb von Apostrophs verlangt…

Hagen

Hallo Hagen
Habe diverses ausprobiert. Es wollte nicht so richtig. Nun habe ich eine Notlösung gefunden:
$Preis = str_replace("’","",$Preis);
Bevor der DB-Eintrag kommt soll er das '-Zeichen durch nichts ersetzen. Anstatt nichts nimmt ernun das -Zeichen.
Wie gesagt, eine Notlösung.
Gruss und Dank
Borsi